関連情報

C#による 変形ベッセル関数 K0(x)

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

Keyword: 変形ベッセル関数

概要

本サンプルは変形ベッセル関数 K0(x)を求めるC#によるサンプルプログラムです。 本サンプルは引数xを読み込み、xの各値について変形ベッセル関数 K0(x)を求めて出力します。

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

入力データ

(本関数の詳細はs18ac のマニュアルページを参照)

このデータをダウンロード
s18ac Example Program Data
             0.0
             0.4
             0.6
             1.4
             1.6
             2.5
             3.5
             6.0
             8.0
             10.0
             -1.0
             1000.0 

  • 1行目はタイトル行で読み飛ばされます。
  • 2〜13行目に変形ベッセル関数の引数xの値を指定しています。

出力結果

(本関数の詳細はs18ac のマニュアルページを参照)

この出力例をダウンロード
s18ac Example Program Results

      x           y        ifail

    0.000e+000  0.000e+000      1
    4.000e-001  1.115e+000      0
    6.000e-001  7.775e-001      0
    1.400e+000  2.437e-001      0
    1.600e+000  1.880e-001      0
    2.500e+000  6.235e-002      0
    3.500e+000  1.960e-002      0
    6.000e+000  1.244e-003      0
    8.000e+000  1.465e-004      0
    1.000e+001  1.778e-005      0
   -1.000e+000  0.000e+000      1
    1.000e+003  0.000e+000      0

  • 5〜16行目に引数xの値、変形ベッセル関数の値とエラーコードが出力されています。エラーコード"0"はエラーがなかったことを意味し、"1"はxが0.0以下で関数が未定義であることを意味します。

ソースコード

(本関数の詳細はs18ac のマニュアルページを参照)

※本サンプルソースコードは .NET環境用の科学技術・統計計算ライブラリである「NAG Library for .NET」の関数を呼び出します。
サンプルのコンパイル及び実行方法


このソースコードをダウンロード
//      s18ac Example Program Text
//      C# version, NAG Copyright 2008
using System;
using NagLibrary;
namespace NagDotNetExamples
{
  public class S18ACE
  {
    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/s18ace.d");
        }
        else
        {
          sr = new DataReader(datafile);
        }
        double x,   y; int ifail;
        Console.WriteLine("s18ac Example Program Results");
        //      Skip heading in data file
        sr.Reset();
        Console.WriteLine("");
        Console.WriteLine(" {0}", "     x           y        ifail");
        Console.WriteLine("");
        try
        {
          while (true)
          {
            sr.Reset();
            x = double.Parse(sr.Next());
            // 
            y = S.s18ac(x, out ifail);
            // 
            if (ifail >= 0)
            {
              Console.WriteLine("  {0,12:e3}{1,12:e3}{2,7}", x, y, ifail);
            }
            else
            {
              Console.WriteLine("** s18ac failed with ifail = {0,5}", ifail);
            }
          }
        }
        catch
        {
        }
        // 
      }
      catch (Exception e)
      {
        Console.WriteLine(e.Message);
        Console.WriteLine("Exception Raised");
      }
    }
    static void discardmessage(String message)
    {
    }
  }
}


Results matter. Trust NAG.

Privacy Policy | Trademarks