信息
这个问题是关闭的。重新编辑或回答。
我做错了什么(牛顿方法?)
1视图(30天)
显示旧的评论
答案(2)
克里斯·拉皮埃尔
2020年5月10日
更有帮助如果你复制/粘贴整个错误的代码。
我最初的猜测是,你得到了一个错误,该指数必须是一个正整数吗?在for循环,循环计数器我从1开始。在你在第10行条件语句,您使用x(张)。我=我时,它试图提取值x (0)。然而,在MATLAB中,索引从1开始,而不是0。
最简单的解决方案是让你的for循环指数从2开始。
0评论
沃尔特·罗伯森
2020年5月10日
为我= 1:Nmax
所以
我
从1开始。
如果分钟(abs (x (i) - x(张)))< xtol | | min (abs (f1 (x (i)))) < ftol
我
是一个标量。(我)和x(张)是标量。减去两个标量的abs()将一个标量。的目的是什么一个标量的min () ?
在第一次迭代中,
我
是1。(i) - x(张)x (1) - x(1 - 1),这是x (1) - x (0)。但是x(0)不是一个法律在MATLAB下标。
注意,当你有这条线,你刚刚计算x (i + 1),但你不
使用
x (i + 1)如果你已经完成了在您的测试。