Keyword: ランベルトのW関数
概要
本サンプルはランベルトのW関数を求めるサンプルプログラムです。 本サンプルは以下に示される入力データxについて関数W(x)の値を求め、出力します。
※本サンプルはnAG Toolbox for MATLAB®が提供する関数 c05ba() のExampleコードです。実行にはMATLAB®本体(他社製品)とnAG Toolbox for MATLAB®が必要です。
本サンプル及び関数の詳細情報は c05ba のマニュアルページをご参照ください。
入力データ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
branch = int32(0); offset = false; x = [0.5, 1.0, 4.5, 6.0, 7.0e7]; w = zeros(length(x),1); ifails = zeros(length(x),1); for i = 1:length(x) [w(i), ifails(i)] = c05ba(x(i), branch, offset); end fprintf('\nBranch = %d\n', branch); if offset fprintf('Offset = true\n\n'); else fprintf('Offset = false\n\n'); end fprintf(' x w(x) ifail\n'); for i=1:5 fprintf('%13.5e %13.5e %d\n', x(i), w(i), ifails(i)); end
- branch に実数の分岐を示す値を指定しています。
- offset にxが−exp(−1)からのオフセットとして指定されているかどうかをを示すパラメータを指定しています。"false" はxはオフセットではなくランベルトのW関数W(x)の引数であることを意味しています。
- x にW関数W(x)のxの値を指定しています。
- w に初期値を指定しています。
- ifalis に初期値を指定しています。
- 6~8行目は本関数を呼び出す構文を指定しています。
- 9~14行目は branch と offset の値を出力する構文を指定しています。
- 15~18行目は本関数の実行結果を出力する構文を指定しています。
出力結果
1 2 3 4 5 6 7 8 9
Branch = 0 Offset = false x w(x) ifail 5.00000e-01 3.51734e-01 0 1.00000e+00 5.67143e-01 0 4.50000e+00 1.26724e+00 0 6.00000e+00 1.43240e+00 0 7.00000e+07 1.53339e+01 0
- Branch は読み込まれた分岐を示す値を示しています。
- Offset は読み込まれた、 xがオフセットかどうかを示すパラメータを示しています。
- 5~9行目にランベルトのW関数の引数xの値、W(x)の値と関数がエラーを検知しなかったことを示す"0"が出力されています。