FORTRANでは実数と整数を区別して変数に格納します. 正しい型の変数を用意しておかないと計算結果がおかしくなります. 変数の型には注意をはらうこと!
implicit none
integer m,n,l
real*8 a,b,c,d,e
l=5/2
a=5/2
m=5.D0/2.D0
b=5.D0/2.D0
n=5/2.D0
c=5/2.D0
e=10
write(*,'(3(I2,x),2(D24.16,x))') l,m,n,a,b
write(*,'(3(D24.16,x))') c,d,e
end
結果はどうなったであろうか? dの値は?
gnuplotで行われる.
-1.0 -3.2 0.0 -0.9 1.0 1.2 2.0 2.8 3.0 5.0といった形で与えられる.左側のデータをx座標,右側のデータ(ファイル名を plot.datとする)をy座標とおもってxy平面上にプロットするときは,gnuplotを起動した画面で
plot 'plot.dat'とするとグラフが描かれる.さらに
plot 'plot.dat' w lとするとデータ点を線で結ぶ.また,gnuplotにはいろいろな関数が用意されていて,
plot sin(x)とするとサインカーブを描いてくれる.他にもワザはたくさんあり
real*8 a(10)a(1)からa(10)まで要素を10個持つ倍精度実数型配列を宣言
integer i(-1:8)i(-1)からi(8)まで要素を10個もつ実数型配列を宣言
implicit none
integer i
real*8 a(10)
a(1)=1.D0
a(2)=2.D0
a(3)=3.D0
do i=1,10
write(*,*) i,a(i)
enddo
end
a(4)以降の要素はどう表示されたでしょうか?
次のプログラムを改造して,
implicit none
integer i
real*8 a(10),b(10),sum(3)
do i=1,3
sum(i)=0.D0
enddo
do i=1,10
a(i)=1.D0*i
b(i)=2.D0*i
enddo
**ここに必要なプログラムを書き足して下さい**
end
上のプログラムを改造して,
最小二乗法では, 測定されたデータの組(x,y)にフィットする直線を求める. データxは正確に求められているとし, またデータyのバラツキは正規分布をしているものとする. この場合, フィットする直線をy=A+Bxとすると, A,Bはそれぞれ
![]() |
|||
![]() |
となる. したがって切片Aと傾きBを算出するためには次の和をもとめればよい.
-1.0 -3.2 0.0 -0.9 1.0 1.2 2.0 2.8 3.0 5.0