这是代码,它只根据两个输入x和y计算两个输出。
function [nextX, nextY]=newton(x,y)
nextX= x-((6*(x^2)*(y^2)*(x+y)-9*(y^2)((y^3)+14)-2*(x^2)*(5*(x^2)-69))/(x*y*(18*x*y+20)));
nextY= y-((10*(x^4)+18*x^2*(y^3)-414*(x^2)+30*x*(y^2)-420*x)/(x*y*(18*x*y+20)));
end
[x,y]=newton(1,1)
我得到了
error: newton: A(I): index out of bounds; value 15 out of bound 1
error: called from:
error: newton at line 2, column 6
每当我尝试运行它时,我都是八度的新手而且我真的看不出我在这里做错了什么。
答案 0 :(得分:2)
您的代码中有一个非常简单的错误(可能是拼写错误):
nextX= x-((6*(x^2)*(y^2)*(x+y)-9*(y^2)((y^3)+14)-2*(x^2)*(5*(x^2)-69))/(x*y*(18*x*y+20)));
^
两个括号之间没有运算符,因此Octave假设您正在尝试通过它的索引获取向量/矩阵的元素,从而抛出index out of bounds
异常。
可能你想要将两个值相乘:
nextX= x-((6*(x^2)*(y^2)*(x+y)-9*(y^2)*((y^3)+14)-2*(x^2)*(5*(x^2)-69))/(x*y*(18*x*y+20)));