Re: [問題] 函數問題
※ 引述《Jesuscrash (被愛是一種幸福)》之銘言:
: ※ 引述《Jesuscrash (被愛是一種幸福)》之銘言:
: : 請問各位先進,小弟寫了此函數計算,發現函數式子debug似乎要帶入
: : 的數字並沒有帶入函數式子中,希望各位先進可以能給個幫忙~謝謝
: program INTEGRAL
: : Real A,B,W1,W2,W3,W4,W5,W6,X1,X2,X3,X4,X5,X6,I,X,PI
: : PI=3.141593
: : A=0.0
: : B=1.0
: W1=0.0337652429
: : W2=0.1693953068
: : W3=0.380690407
: : W4=0.619309593
: : W5=0.8306046932
: : W6=0.9662347571
: : X1=W1*B+W6*A
: : X2=W6*B+W1*A
: : X3=W2*B+W5*A
: : X4=W5*B+W2*A
: : X5=W3*B+W4*A
: : X6=W4*B+W3*A
: : I=(B-A)*(0.0856622462*(F(X1)+F(X2))+
: : < 0.1803807865*(F(X3)+F(X4))+
: : < 0.2339569673*(F(X5)+F(X6)))
: : WRITE(*,*) I
: : END PROGRAM
: : function F(X)
: : implicit none
: : real X,DYDX,T,R,F
: : T=12
: : DYDX=5*T*(2969/20000/(x**0.5)-63/500-879/1250*x+8529/10000*(x**2)-
: : > 203/500*(x**3))
: : F=SQRT(1+DYDX**2)
: : RETURN
: : END
: 我將F浮點數補上後compile所得到的答案仍然是1.0,還是怪怪的@@~
: 懇請各位幫個忙> <~謝謝!!
回文比較乾脆,以前寫程式時偶爾也有這種問題。
常常自己覺得邏輯都正確,用手算都沒問題,但寫成程式算出來就是不對。
後來慢慢了解,程式在計算時,會依變數型態不同而有差異。
整數跟浮點數存的方法也不太一樣,這些可以看書解釋比較清楚。
在計算時依照你需要的計算式來宣告變數可以避免掉這些問題。
在遇到你這種情況時,可以印出各段的計算結果,看看到底哪裡出了狀況。
等這種爛經驗(!?)多了之後,看程式碼就大概知道什麼狀況了...
----
爛經驗豐富也許不是一件好事...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 58.99.46.65
推
03/01 17:24, , 1F
03/01 17:24, 1F
推
03/05 16:00, , 2F
03/05 16:00, 2F
討論串 (同標題文章)
Fortran 近期熱門文章
PTT數位生活區 即時熱門文章