[問題] 牛頓法逼近求解
資概上機考題目
給定一個方程式(題目會提供 但我先用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檔
但是結果和老師上課示範的不同
我哪裡錯了?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.198.181.184
→
06/02 18:18, , 1F
06/02 18:18, 1F
→
06/02 18:47, , 2F
06/02 18:47, 2F
→
06/02 19:00, , 3F
06/02 19:00, 3F
→
06/02 19:02, , 4F
06/02 19:02, 4F
→
06/02 20:03, , 5F
06/02 20:03, 5F
→
06/02 20:03, , 6F
06/02 20:03, 6F
推
06/03 19:57, , 7F
06/03 19:57, 7F
→
06/03 19:59, , 8F
06/03 19:59, 8F
→
06/03 22:03, , 9F
06/03 22:03, 9F
→
06/03 23:25, , 10F
06/03 23:25, 10F
→
06/03 23:28, , 11F
06/03 23:28, 11F
→
06/03 23:37, , 12F
06/03 23:37, 12F
→
06/04 07:12, , 13F
06/04 07:12, 13F
討論串 (同標題文章)
Fortran 近期熱門文章
PTT數位生活區 即時熱門文章