Board logo

主題: [問題]有關FORTRAN的問題 [打印本頁]

發表人: 捨我其誰    時間: 2007-6-9 10:31 AM     主題: [問題]有關FORTRAN的問題

好久沒到水區晃晃
這都是因為考試太多啦
最近遇到一個令我苦惱的問題
數值分析的期末報告!!!

題目是給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 作了最後編輯]
發表人: 小福    時間: 2007-6-9 10:42 AM

雖然我不會,但是我幫你喊一下

"來喔!高手.這裡有人需要你,緊來喔.緊來喔,展現你的長處喔"
發表人: 捨我其誰    時間: 2007-6-9 12:27 PM

謝謝.....
在高手幫忙前先自己努力寫.....




歡迎光臨 TWed2k (http://twed2k.org/) Powered by Discuz! 4.1.0