看板 Fortran 關於我們 聯絡資訊
下面是我寫的牛頓法: program ENVE-MATH implicit real*8 (a-h,o-z) !宣告 write(*,*)"此方程式為ax^4+bx^3+cx^2+dx+e" write(*,*)"請輸入方程式的a值" read(*,*)a write(*,*)"請輸入方程式的b值" read(*,*)b write(*,*)"請輸入方程式的c值" read(*,*)c write(*,*)"請輸入方程式的d值" read(*,*)d write(*,*)"請輸入方程式的e值" read(*,*)e write(*,*)"你輸入的方程式為ax^4+bx^3+cx^2+dx+e" write(*,*)"請輸入初始值" read(*,*)x write(*,*)"請輸入誤差值" read(*,*)z 1 f1=a*x**4+b*x**3+c*x**2+d*x+e !f1是原方程式 f2=4*a*x**3+3*b*x**2+2*c*x+d !f2是f1的一次微分 x2=x-(f1/f2) !算出新數值 error=abs(x2-x) !計算誤差的絕對值 if(error<=z)then go to 2 end if x=x2 write(*,*)x go to 1 2 write(*,*)x2 stop end 但是它顯示我有一個地方出錯 有高手可以給予指教嗎 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.120.29.185
awer89:錯誤訊息?? 11/03 18:16
terryys:錯誤信息很多時候都有用,可以告訴你哪裡有問題 11/03 18:22
terrylove12:不知道錯誤信息是指哪邊@@? 不過有個小地方想給你個小 11/04 00:19
terrylove12:議 如果f2計算的值為0的話 (f1/f2)就會出錯 11/04 00:20
terrylove12:不過通常f2會是0比較可能是在第一步給初始點計算 11/04 00:21
terrylove12:會有問題(例如 初始給整數 剛好扣光之類的...~ 11/04 00:22
magaiml:沒有給錯誤訊息,另外一問,為什麼標籤1,2 不用Continue 11/04 21:54
magaiml:還有,為什麼一開始不 implicit none 全部清空 11/04 21:55
terryys:標籤不一定要加在continue前 不過goto還是少用比較好 11/04 22:16
terryys:他現在用implicit real也不是不行,可以偷懶一下 11/04 22:18
terryys:將來出問題不要忘了這一點就好 11/04 22:18