VB牛頓迭代法解方程,求助 用vb寫牛頓迭代法程式解方程

時間 2021-07-17 07:46:06

1樓:常映寒黃彥

設f(x)=2x^3-4x^2+3x-6,對它求導的f'(x)=6x^2-8x+3

根據牛頓迭代公式令x(k+1)=x(k)-f[x(k)]/f'[x(k)]

然後將x(0)=1.5代入方程

xf(x)

f'(x)

1.5-3.75

4.52.33333333

2.2963

17.0000

2.19826

方程的根就是2.19826

取得精度不同,算出來的資料可能稍有差別,如果這個資料精度不夠要求,你可以按照這個方法再往下算幾次就可以了

2樓:相樂心宦業

c語言實現編輯本段問題

已知f(x)=x*e^x-1

針對f(x)=0型別。

迭代方程是:g(x)=x-f(x)/f'(x);其中f'(x)是導數。

針對x*e^x-1=0的牛頓迭代法

求出迭代方程,根據牛頓的是,g(x)=x-f(x)/f'(x)針對x*e^x-1=0,是g(x)=x-(xe^x-1)/(e^x+x*e^x);

**#include

#include

intmain()

{double

f(double

x);double

x,y,d;

x=1;

y=0;//迭代值。

d=0.000000001;//誤差控制

求助:用vb寫牛頓迭代法程式解方程

3樓:匿名使用者

dim q as single, m as single, s as single, r as single

private sub command1_click()

dim x0 as single

doq = val(inputbox("請輸入常數q(≠0) "))

loop until q <> 0

dom = val(inputbox("請輸入常數m(≠0) "))

loop until m <> 0

dos = val(inputbox("請輸入常數s(≠0) "))

loop until s <> 0

dor = val(inputbox("請輸入常數r(≠0) "))

loop until r <> 0

label1 = label1 & "q=" & q & "

m=" & m & "

s=" & s & "

r=" & r

dox0 = val(inputbox("請粗略估計解x0(>0) "))

loop until x0 > 0

y0 = hanshu(x0)

doxielv = daoshu(x0)

deltx = y0 / xielv

x0 = x0 + deltx

y0 = hanshu(x0)

loop until abs(y0) < 0.00005 and abs(deltx) < 0.00005

label1 = label1 & vbcrlf & "x=" & x0 & "

y=" & y0 & "

δx=" & deltx

end sub

private sub command2_click()

for i = 0 to 255

if i mod 10 = 0 then print

print chr$(i); " ";

next i

print "ok"

end sub

private sub form_load()

label1 = "(0.366 * q / m / s) * log(10 * s * sqr(x) / r) - x = 0" & vbcrlf

end sub

private function hanshu(x as single) as single

hanshu = 0.366 * q / m / s * log(10 * s * sqr(x) / r) - x

end function

private function daoshu(x as single) as single

daoshu = 0.366 * q / 2 / x / m / s - 1

end function

注意引數選擇不當,就會出錯。

vb程式設計題,牛頓迭代法。 200

4樓:匿名使用者

private function newton(n as double, eps as double) as double

dim a(100) as double

dim x as double

dim y as double

dim k as double

a(0) = 0

for i = 0 to 99

x = a(i)

y = x ^ 3 - 2 * x ^ 2 + 4 * x + 1k = 3 * x ^ 2 - 4 * x + 4a(i + 1) = x - y / k

print a(i + 1)

if abs(y) < esp then

newton = a(i + 1)

exit function

else

newton = 0

end if

next i

end function

5樓:y小時代

你會了嘛 怎麼做的 我看答案還是看不懂那

6樓:匿名使用者

esp和 eps 筆誤嘍

vb程式設計 用牛頓迭代法求f(x)=3x^3-4x^2-5x+13

7樓:匿名使用者

wkihh,.>=-===236544458kjim=+3.14-------------:[325544]

牛頓迭代法(matlab)求個問題

x 10 1 x syms x f x x 10 df diff f,x eps 1e 6 x0 10 cnt 0 maxcnt 200 最大迴圈次數 while cnt if abs x1 x0 break endx0 x1 cnt cnt 1 endif cnt maxcnt disp 不收斂 ...

迭代法,二分法,牛頓迭代法,弦截法的演算法設計思想

炫心吾動之夜愛 1 迭代法設計思想最簡單 x f x 但這種方法初值很主要,不然容易發散。2 二分法設計思想是先給定區間 a,b 要求f a 與f b 是異號,保證區間內與x軸有交點,求x a b 2,求f x 檢查f x 與f a 是否同號,如果是同號,把x當成新的a,否則把x當成新的b,得到新的...

c 用迭代法求立方根,C 用迭代法求立方根?

把 x2 2 3 x1 a 3 x1 x1 改為 x2 2.0 3 x1 a 3 x1 x1 就可以了。編譯器認為2 3是整數除法,結果為0。 華娛創世 例如 include iostream.h include math.h void main if x1 pow a,1 3 cout a 這是我...