VB 牛顿迭代法解方程

VB 牛顿迭代法解方程,第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)=15代入方程

x

f(x)

f'(x)

15

-375

45

233333333

22963

170000

219826

方程的根就是219826

取得精度不同,算出来的数据可能稍有差别,如果这个数据精度不够要求,你可以按照这个方法再往下算几次就可以了

那就累加到高阶项的值小于1e-6啊,vb可以支持这个精度的。

---------------------------------------------------------

迭代的思想不是这样的吧,如果可以直接求1/3次,那还迭代什么。

它主要思想是用简单运算如加减乘除来代替复杂运算如开方。

通常用牛顿展开式,因展开式有无穷项但有些式子高阶项逐渐趋近于零,

所以高阶项<误差时,结果小于误差。

因此要判断高阶项,不是直接判断结果。

但有时收敛会很慢,那要多迭代几次。

给你一个容易理解但是很麻烦的办法吧,先估算出未知数t和k的范围,比如t∈(-100,500),k∈(-300,1000),再设两个步长,dt=0001,k=0003。再设一个阈值d=001,然后循环

for t=-100 to 500 step 0001

for k=-300 to 1000 step 0003

if a1t^3++h1 < 001

//在阈值范围内,输出t和k值

next k

next t

这个方法在步长和阈值设置合理的情况下可以求得近似解。

如果要优化,可以参考优化设计方面的书籍,像什么分支定界法之类的提高计算效率。

Dim a1, b1, c1, d1, e1, f1, g1, h1, a2, b2, c2, d2, e2, f2, g2, h2 As Double

'要给这些常数赋值

Dim t, k As Double

For t = 0 To 1 Step 0001

For k = 0 To 1 Step 0001

If Abs(a1t ^ 3 + b1 t ^ 2 + c1 t + d1 t k ^ 2 + e1 t k + f1 k ^ 2 + g1 k + h1) < 0001 And Abs(a2 k ^ 3 + b2 k ^ 2 + c2 k + d2 k t ^ 2 + e2 k t + f2 t ^ 2 + g2 t + h2) < 0001 Then

'在阈值范围内,输出t和k值

Print "t="; t

Print "k="; k

End If

Next k

Next t

从中解出S,就是S=V0t-(1/2)at^2

Private Sub Command1_Click()

dt = Val(Text1Text)

v0 = Val(Text2Text)

a = Val(Text3Text)

t = 0

Print: Print: Print: Print: Print

Print " t", " Vt", " S"

For i = 1 To 20

  t = t + dt

  v = v0 + a t

  s = v0 t + 05 a t t

  Print t, v, s

Next i

End Sub

压缩包中有源程序和可执行文件。

哪个迭代?

Private Sub Command1_Click()

   Dim n As Double

   n = Val(Text1Text)

   Dim k As Integer

   k = 0

   Do While n > 0

       n = n \ 10

       k = k + 1

   Loop

   MsgBox k

End Sub

Private Sub Command1_Click()

'VB编程:    用迭代法求某数a的平方根平方根的迭代公式如下:

'xn+1=(xn+a/xn)/2; 设x0=a/2;

'当迭代相邻两项差的绝对值小于10-5时,迭代结束。

     Dim a As Double, Xn As Double, X As Double, Delt As Double

     a = Val(Text5Text)

     Xn = a / 2

     Delt = 000001

     X = (Xn + a / Xn) / 2

     Do While Abs(X - Xn) > Delt

        Xn = X

        X = (Xn + a / Xn) / 2

     Loop

     Print X

End Sub

以上就是关于VB 牛顿迭代法解方程全部的内容,包括:VB 牛顿迭代法解方程、VB 迭代法求x=a^1/3、VB高手请指教!高分答谢!怎样用VB编程,用迭代法解二元三次方程组等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9364161.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存