Fortran 板


LINE

※ 引述《HDT (氕氘氚)》之銘言: : 資概上機考題目 : 給定一個方程式(題目會提供 但我先用x**3-0.165*x**2+3.993/10**4來練習) : 以牛頓法逼近求解 : 誤差值也是題目提供 : 這是我的原程式碼(!的部分不是) : program test : implicit none : real::error,x,f1,f2,e : write(*,*)"請輸入初始值" : read(*,*)x : write(*,*)"請輸入誤差值" : read(*,*)e : f1=x**3-0.165*x**2+3.993/10**4 !f1是原方程式 : f2=3*x**2-0.33*x !f2是f1的一次微分 : error=f1/(f2*x)-f2 !誤差值算法 : do while(error>=e) : f1=x**3-0.165*x**2+3.993/10**4 : f2=3*x**2-0.33*x : error=f1/(f2*x)-f2 : if(error<0)then : error=-1*error !強迫誤差值為正 : end if : x=x-(f1/f2) !利用DO WHILE迴圈使x值可以一值變換計算 : end do : write(*,*)x !將小於誤差值的x寫出來 : end program : 可以跑出.exe檔 : 但是結果和老師上課示範的不同 : 我哪裡錯了? 題目y=x**3-0.165*x**2+3.993/10**4 會有三個實根 a. 0.146359504 b. -0.043737086 c. 0.062377581 ←你老師的解 因此隨著妳初始x值位置所收歛的結果會有不同 至於為何,可以畫三次曲線出來 用牛頓法的原理(垂切垂切....) 即可明白 然而收斂準則 (也就是error值) 取絕對值就能轉為正 初始猜值在這個函數不能猜0,因為計算第一次f2(0)放在分母會爆掉 至於Nan就是你的結果發散,跑到正負無限大... 原因有可能為error沒有取絕對值所導致 大概問題是這樣 小改了一下程式碼... 收斂準則 e 大概0.01或0.001就可以了 猜值隨你猜不同的位置會有不同(3個)結果 ==============================以下為程式碼============================ program test implicit none real(8)::error,x,f1,f2,e integer :: i write(*,*)"請輸入初始值" read(*,*)x write(*,*)"請輸入誤差值" read(*,*)e f1=x**3-0.165*x**2+3.993/10**4 !f1是原方程式 f2=3*x**2-0.33*x !f2是f1的一次微分 !error=f1/(f2*x)-f2 !誤差值算法 error=dabs(f1/(f2*x)-f2) i=0 do while(error>=e) i=i+1 if (i>1000) exit !超過1000次跳出迴圈 f1=x**3-0.165*x**2+3.993/10**4 f2=3*x**2-0.33*x !error=f1/(f2*x)-f2 error=dabs(f1/(f2*x)-f2) !if(error<0)then !error=-1*error !強迫誤差值為正 !end if x=x-(f1/f2) !利用DO WHILE迴圈使x值可以一值變換計算 write(*,*)error end do write(*,*)"==========Convge!!!==========" write(*,*)x !將小於誤差值的x寫出來 end program --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.155.90
1F:→ charlesdc:很熱心!! 可以給個讚嗎~~XD 06/04 01:18
2F:推 HDT:感謝 雖然...很多都不懂= = 06/04 16:26
3F:推 howdiee:讚!! 06/04 16:36







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP