在一个小的Octave程序中索引超出Bounds错误

时间:2015-11-08 19:34:49

标签: octave

这是代码,它只根据两个输入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

每当我尝试运行它时,我都是八度的新手而且我真的看不出我在这里做错了什么。

1 个答案:

答案 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)));