C#による ヤコビ楕円関数

C#によるサンプルソースコード : 使用関数名:s21ca

Keyword: ヤコビ楕円関数

概要

本サンプルはヤコビ楕円関数を求めるC#によるサンプルプログラムです。 本サンプルは引数u、mを読み込み、以下に示されるヤコビ楕円関数を求めて出力します。

ヤコビ楕円関数のデータ 

※本サンプルはnAG Library for .NETに含まれる関数 s21ca() のExampleコードです。本サンプル及び関数の詳細情報は s21ca のマニュアルページをご参照ください。
ご相談やお問い合わせはこちらまで

入力データ

(本関数の詳細はs21ca のマニュアルページを参照)
1
2
3
4
5

このデータをダウンロード
s21ca Example Program Data
  0.2   0.3
  5.0  -1.0
 -0.5  -0.1
 10.0  11.0 

  • 1行目はタイトル行で読み飛ばされます。
  • 2~5行目に引数u、mの値を指定しています。

出力結果

(本関数の詳細はs21ca のマニュアルページを参照)
1
2
3
4
5
6
7

この出力例をダウンロード
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」の関数を呼び出します。
サンプルのコンパイル及び実行方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77

このソースコードをダウンロード
//      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)
    {
    }
  }
}


関連情報
© 日本ニューメリカルアルゴリズムズグループ株式会社 2024
Privacy Policy  /  Trademarks