Keyword: チェビシェフ級数, 2変数多項式
概要
本サンプルはチェビシェフ級数形式の2変数多項式を求めるFortranによるサンプルプログラムです。 本サンプルは以下に示されるデータを含む引数を読み込み、チェビシェフ級数形式の2変数多項式を計算し出力します。
※本サンプルはnAG Fortranライブラリに含まれるルーチン e02cbf() のExampleコードです。本サンプル及びルーチンの詳細情報は e02cbf のマニュアルページをご参照ください。
ご相談やお問い合わせはこちらまで
入力データ
(本ルーチンの詳細はe02cbf のマニュアルページを参照)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
このデータをダウンロード |
E02CBF Example Program Data .FALSE. : output data for plotting 3 2 20 : k, l, m=no of output points. 15.34820 5.15073 -2.20140 1.14719 -0.64419 0.30464 -0.49010 -0.00314 -6.69912 0.00153 3.00033 -0.00022 : Chebyshev coefficients 0.0 4.0 0.1 4.5 : ymin ymax xmin xmax
- 1行目はタイトル行で読み飛ばされます。
- 2行目にプロット用のデータを出力するかどう(plot)を指定しています。".FALSE."は出力しないことを意味します。
- 2行目に変数xの次元(k)、変数yの次元(l)、出力するデータ点の数(m)を指定しています。
- 4~15行目に多項式のチェビシェフ係数(a)を指定しています。
- 16行目に変数yの下限(ymin)と上限(ymax)、変数xの下限(xmin)と上限(xmax)を指定しています。
出力結果
(本ルーチンの詳細はe02cbf のマニュアルページを参照)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
この出力例をダウンロード |
E02CBF Example Program Results Y = 0.1053E+01 I X(I) Poly(X(I),Y) 1 1.0000E-01 7.3827E+00 2 1.2000E+00 -2.7648E-01 3 2.3000E+00 -2.2541E-01 4 3.4000E+00 3.2750E+00 5 4.5000E+00 5.9637E+00 Y = 0.2316E+01 I X(I) Poly(X(I),Y) 1 1.0000E-01 1.0752E+01 2 1.2000E+00 2.6132E+00 3 2.3000E+00 -8.3004E-01 4 3.4000E+00 1.8462E+00 5 4.5000E+00 1.2066E+01 Y = 0.3579E+01 I X(I) Poly(X(I),Y) 1 1.0000E-01 1.1902E+00 2 1.2000E+00 8.8478E+00 3 2.3000E+00 7.4980E+00 4 3.4000E+00 4.2491E+00 5 4.5000E+00 6.2093E+00
- 3行目にy座標の値が出力されています。
- 5~10行目にインデックス、xの値、多項式の値が出力されています。
- 12行目にy座標の値が出力されています。
- 14~19行目にインデックス、xの値、多項式の値が出力されています。
- 21行目にy座標の値が出力されています。
- 23~28行目にインデックス、xの値、多項式の値が出力されています。
ソースコード
(本ルーチンの詳細はe02cbf のマニュアルページを参照)
※本サンプルソースコードは科学技術・統計計算ライブラリである「nAG Fortranライブラリ」のルーチンを呼び出します。
サンプルのコンパイル及び実行方法
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 78 79 80 81 82 83 84 85 86
このソースコードをダウンロード |
PROGRAM e02cbfe ! E02CBF Example Program Text ! Mark 23 Release. nAG Copyright 2011. ! .. Use Statements .. USE nag_library, ONLY : e02cbf, nag_wp ! .. Implicit None Statement .. IMPLICIT NONE ! .. Parameters .. INTEGER, PARAMETER :: nin = 5, nout = 6 ! .. Local Scalars .. REAL (KIND=nag_wp) :: xmax, xmin, y, ymax, ymin INTEGER :: i, ifail, j, k, l, m, m1, m2, & mfirst, mlast, na, nwork LOGICAL :: plot ! .. Local Arrays .. REAL (KIND=nag_wp), ALLOCATABLE :: a(:), ff(:), work(:), x(:) ! .. Intrinsic Functions .. INTRINSIC min, real ! .. Executable Statements .. ! Skip heading in data file READ (nin,*) READ (nin,*) plot IF ( .NOT. plot) THEN WRITE (nout,*) 'E02CBF Example Program Results' END IF READ (nin,*) k, l, m IF (plot) THEN m1 = 1 m2 = m mlast = m ELSE m1 = (2*m+3)/7 m2 = (6*m+3)/7 + 1 mlast = min(5,m) END IF na = (k+1)*(l+1) nwork = k + 1 ALLOCATE (x(mlast),ff(mlast),a(na),work(nwork)) READ (nin,*) a(1:na) READ (nin,*) ymin, ymax, xmin, xmax x(1:mlast) = xmin + (xmax-xmin)*real((/(j-1,j=1,mlast)/),kind=nag_wp)/ & real(mlast-1,kind=nag_wp) mfirst = 1 DO i = m1, m2, m1 y = ymin + ((ymax-ymin)*real(i-1,kind=nag_wp))/real(m-1,kind=nag_wp) ifail = 0 CALL e02cbf(mfirst,mlast,k,l,x,xmin,xmax,y,ymin,ymax,ff,a,na,work, & nwork,ifail) IF (plot) THEN DO j = 1, mlast WRITE (nout,99998) y, x(j), ff(j) END DO WRITE (nout,*) ELSE WRITE (nout,*) WRITE (nout,99999) 'Y = ', y WRITE (nout,*) WRITE (nout,*) ' I X(I) Poly(X(I),Y)' DO j = 1, mlast WRITE (nout,99997) j, x(j), ff(j) END DO END IF END DO 99999 FORMAT (1X,A,E13.4) 99998 FORMAT (1X,1P,2E13.4,1P,2E13.4) 99997 FORMAT (1X,I3,1P,2E13.4) END PROGRAM e02cbfe