|
|
捨我其誰
開墾隊隊員
. 積分: 762
. 文章: 2967
. 收花: 5378 支
. 送花: 2857 支
. 比例: 0.53
. 在線: 2018 小時
. 瀏覽: 25950 頁
. 註冊: 7128 天
. 失蹤: 3379 天
|
|
|
|
|
|
|
#1 : 2007-6-9 10:31 AM
只看本作者
|
送花
(0)
送出中...
|
|
|
好久沒到水區晃晃
這都是因為考試太多啦
最近遇到一個令我苦惱的問題
數值分析的期末報告!!!
題目是給100組電流與時間的數據
要我用多項式內差法和兩種不同的最小二乘擬合函數來擬合那些數據
要我用手寫寫公式計算我是會啦
但是把它轉成FORTRAN程式我就寫不大出來
我想
水區的朋友有很多是程式高手
請麻煩幫我看看以下的程式
以下是一個副程式
我推測應該是做內插法用的
但是在做DO迴圈那段我看不懂....怎感覺跳來跳去
有高手可以幫我解釋它是在寫什麼嗎?
以下是副程式:
subroutine polint ( xa,ya,n,x,y,dy)
INTEGER n,NMAX
REAL x,y,dy,xa(n),ya(n)
PARAMETER (NMAX=10)
INTEGER i,m ns
REAL den,dif,dift,ho,hp,w,c(NMAX),d(NMAX)
ns=1
dif=abs(x-xa(1))
do 11 i=1,n
dift=abs(x-xa(i))
if (dift .lt. dif ) then
ns = i
dif = dif
endif
c ( i ) = ya ( i )
d ( i ) = ya ( i )
11 continue
y = ya( ns )
ns = ns-1
do 13 m=1 , n-1
do 12 i=1,n-m
ho = xa ( i ) - x
hp = xa ( i+m ) -x
w=c ( i+1 ) - d( i )
dne = ho - hp
if (den .eq. 0. ) pause "failure "
den = w/ den
d ( i ) = hp * den
c ( i ) = ho * den
12 continue
if ( 2*ns .lt. n-m ) then
dy = c ( ns +1)
else
dy = d(ns)
ns = ns-1
end if
y=y+dy
13 continue
return
END
還有一個小問題
我把最小二乘擬合的算法已經用手寫出來了
但是要解出三個未知數的程式我寫不出來
196*a+28*c=-7
28*b=-39
28*a+7*c=1
如果有人會用fortran寫出這三條方程式的a,b,c的解
請不要吝情展現您的才華吧
[捨我其誰 在 2007-6-9 12:25 PM 作了最後編輯]
[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
|
|