关于matlab中循环控制

我想在matlab中用迭代法求解方程1-115/x^2=0的解,利用牛顿法得到迭代公式x(i+1)=x(i)-{[x(i)]^2-115*x(i)}/230。经其他算法验... 我想在matlab中用迭代法求解方程1-115/x^2=0的解,利用牛顿法得到迭代公式
x(i+1)=x(i)-{[x(i)]^2-115*x(i)}/230。经其他算法验证迭代公式没有错误。我想在迭代过程中对结果精度进行控制。因而引入变循环次数j当打不到计算精度时循环次数加一。精度满足时跳出for循环。自己走了几遍程序感觉没错可是总是循环四次就停止了,而且没有满足跳出循环的条件。计算精度总是达不到设置精度。求大神们给瞧瞧到底是哪错了。代码如下。
j=2
x0 = 10;
for i= 1:j
x = x0-(x0^3-115*x0)/230;
if abs(x-x0)<= 0.5*10^(-8)
c=0
break
else
j = j+1
x0=x;
end
end
x
展开
 我来答
wfieri
2012-10-28 · TA获得超过3679个赞
知道小有建树答主
回答量:506
采纳率:50%
帮助的人:437万
展开全部
这是因为j是在for循环里变化的,而i=1:j是在开始就赋值的,初值等于2,它是不会根据循环里j的变化而变化的,如果你要计算迭代次数,用下面的方法即可,n为迭代次数,满意请采纳,谢谢!还有你文字中的迭代公式x0是2次方,程序里确实3次方,请注意修改。
clc
clear
j=100;
x0 = 10;
n=0; %迭代次数
for i= 1:j
x = x0-(x0^3-115*x0)/230;
if abs(x-x0)<= 0.5*10^(-8)
break
end
x0=x;
n=n+1;
end
x;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式