Keyword: ヤコビ楕円関数
概要
本サンプルはヤコビ楕円関数を求めるC#によるサンプルプログラムです。 本サンプルは引数u、mを読み込み、以下に示されるヤコビ楕円関数を求めて出力します。
※本サンプルはnAG Library for .NETに含まれる関数 s21ca() のExampleコードです。本サンプル及び関数の詳細情報は s21ca のマニュアルページをご参照ください。
ご相談やお問い合わせはこちらまで
入力データ
(本関数の詳細はs21ca のマニュアルページを参照)- 1行目はタイトル行で読み飛ばされます。
- 2〜5行目に引数u、mの値を指定しています。
出力結果
(本関数の詳細はs21ca のマニュアルページを参照)| この出力例をダウンロード |
s21ca Example Program Results
u m sn cn dn ifail
2.0000e-001 3.0000e-001 1.9828e-001 9.8015e-001 9.9409e-001 0
5.0000e+000 -1.0000e+000 -2.4403e-001 9.6977e-001 1.0293e+000 0
-5.0000e-001 -1.0000e-001 -4.8117e-001 8.7663e-001 1.0115e+000 0
1.0000e+001 1.1000e+001 2.5125e-001 9.6792e-001 5.5283e-001 0
- 4〜7行目に引数u、mの値、ヤコビ楕円関数sn、cn、dnの値とエラーコードが出力されています。エラーコード"0"はエラーがなかったことを意味します。
ソースコード
(本関数の詳細はs21ca のマニュアルページを参照)
※本サンプルソースコードは .NET環境用の科学技術・統計計算ライブラリである「nAG Library for .NET」の関数を呼び出します。
サンプルのコンパイル及び実行方法
| このソースコードをダウンロード |
// s21ca Example Program Text
// C# version, nAG Copyright 2008
using System;
using NagLibrary;
namespace NagDotNetExamples
{
public class S21CAE
{
static bool defaultdata = true;
static string datafile = "";
static void Main(String[] args)
{
if (args.Length == 1)
{
defaultdata = false;
datafile = args[0];
}
StartExample();
}
public static void StartExample()
{
try
{
PrintManager.Warning = new PrintManager.MessageLogger(discardmessage);
DataReader sr = null;
if (defaultdata)
{
sr = new DataReader("exampledata/s21cae.d");
}
else
{
sr = new DataReader(datafile);
}
double cn, dn, m, sn, u; int ifail;
Console.WriteLine("s21ca Example Program Results");
// Skip heading in data file
sr.Reset();
Console.WriteLine("");
Console.Write(" {0}", " u m sn cn dn");
Console.WriteLine(" ifail");
try
{
while (true)
{
sr.Reset();
u = double.Parse(sr.Next());
m = double.Parse(sr.Next());
//
S.s21ca(u, m, out sn, out cn, out dn, out ifail);
//
if (ifail >= 0)
{
Console.WriteLine(" {0,13:e4}{1,13:e4}{2,13:e4}{3,13:e4}{4,13:e4}{5,5}",
u, m, sn, cn, dn, ifail);
}
else
{
Console.WriteLine("** s21ca failed with ifail = {0,5}", ifail);
}
}
}
catch
{
}
//
}
catch (Exception e)
{
Console.WriteLine(e.Message);
Console.WriteLine("Exception Raised");
}
}
static void discardmessage(String message)
{
}
}
}
