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循环,但效果不理想 展开
初值x0取a精度为0.000001
主要是精度问题!
关键是有的数开三次方后不是无限小数,直接导致程序进入死循环
我尝试用if判断是否叠加完毕(x1^3=a),再用exit函数退出do循环,但效果不理想 展开
2个回答
展开全部
那就累加到高阶项的值小于1e-6啊,vb可以支持这个精度的。
---------------------------------------------------------
迭代的思想不是这样的吧,如果可以直接求1/3次,那还迭代什么。
它主要思想是用简单运算如加减乘除来代替复杂运算如开方。
通常用牛顿展开式,因展开式有无穷项但有些式子高阶项逐渐趋近于零,
所以高阶项<误差时,结果小于误差。
因此要判断高阶项,不是直接判断结果。
但有时收敛会很慢,那要多迭代几次。
---------------------------------------------------------
迭代的思想不是这样的吧,如果可以直接求1/3次,那还迭代什么。
它主要思想是用简单运算如加减乘除来代替复杂运算如开方。
通常用牛顿展开式,因展开式有无穷项但有些式子高阶项逐渐趋近于零,
所以高阶项<误差时,结果小于误差。
因此要判断高阶项,不是直接判断结果。
但有时收敛会很慢,那要多迭代几次。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询