VB 迭代法求x=a^1/3

公式:x1=2/3*x0+a/(3*x0^2)初值x0取a精度为0.000001主要是精度问题!关键是有的数开三次方后不是无限小数,直接导致程序进入死循环我尝试用if判断... 公式:x1=2/3*x0+a/(3*x0^2)
初值x0取a精度为0.000001

主要是精度问题!
关键是有的数开三次方后不是无限小数,直接导致程序进入死循环
我尝试用if判断是否叠加完毕(x1^3=a),再用exit函数退出do循环,但效果不理想
展开
 我来答
静·是一种态度14ed7c
2010-04-19 · TA获得超过1542个赞
知道小有建树答主
回答量:563
采纳率:0%
帮助的人:439万
展开全部
那就累加到高阶项的值小于1e-6啊,vb可以支持这个精度的。
---------------------------------------------------------
迭代的思想不是这样的吧,如果可以直接求1/3次,那还迭代什么。
它主要思想是用简单运算如加减乘除来代替复杂运算如开方。
通常用牛顿展开式,因展开式有无穷项但有些式子高阶项逐渐趋近于零,
所以高阶项<误差时,结果小于误差。
因此要判断高阶项,不是直接判断结果。
但有时收敛会很慢,那要多迭代几次。
百度网友740e59274
2010-04-19 · TA获得超过783个赞
知道小有建树答主
回答量:549
采纳率:0%
帮助的人:0
展开全部
Do
X1 = 2 / 3 * x0 + a / (3 * x0 ^ 2)
If Abs(X1 - x0) < e Then Print X1: Exit Do
x0 = X1
Loop
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式