Matlab 未定义的函数或变量';x';

Matlab 未定义的函数或变量';x';,matlab,Matlab,我试图计算两个矩阵,我使用subs在metnewtonist函数之外定义了这两个矩阵,每当我试图运行代码时,我都会得到错误Undefined函数或变量“x” [编辑]我添加了GaussPivTot函数的代码,该函数决定线性系统的解决方案 syms x y f1 = x^2 + y^2 -4; f2 = (x^2)/8 - y; J = jacobian( [ f1, f2 ], [x, y]); F = [f1; f2]; subs(J, {x,y}, {1, 1}) eps = 10^(-6)

我试图计算两个矩阵,我使用subs在metnewtonist函数之外定义了这两个矩阵,每当我试图运行代码时,我都会得到错误Undefined函数或变量“x”

[编辑]我添加了GaussPivTot函数的代码,该函数决定线性系统的解决方案

syms x y
f1 = x^2 + y^2 -4;
f2 = (x^2)/8 - y;
J = jacobian( [ f1, f2 ], [x, y]);
F = [f1; f2];
subs(J, {x,y}, {1, 1})
eps = 10^(-6);
[ x_aprox,y_aprox, N ] = MetNewtonSist( F, J, 1, 1, eps )

结束


默认情况下,
eps
在MATLAB中定义为
2.2204e-16
。因此,不要用变量覆盖它,并将其命名为任何其他单词

epsilon = 1e-6;
对于实际问题,将
x
y
作为输入参数传递给
metnewtonist
函数。i、 e.将
metnewtonist
定义为:

function [x_aprox, y_aprox, N] = MetNewtonSist(F, J, x0, y0, epsilon, x, y)
%added x and y and renamed eps to epsilon
然后用以下词语来称呼它:

[x_aprox, y_aprox, N] = MetNewtonSist(F, J, 1, 1, epsilon, x, y);

在哪一行?还请注意,如果没有
GaussPivTot
,我们将无法运行您的代码。该函数中的错误由你来解决这里是我得到错误[x_v(k),y_v(k)]=z+[x_v(k-1),y_v(k-1)];不能将两个元素存储在这样的两个变量中。将该错误行替换为这两行,即
x_v(k)=z+x_v(k-1)
y_v(k)=y_v(k-1)
但是GaussPivTot返回一个2x1数组,这是如何工作的?这就是为什么您必须始终创建一个数组来节省我们所有人的时间,以便我们可以运行您的代码。使用这个:
xuv(k)=z(1)+xuv(k-1)
y_v(k)=z(2)+y_v(k-1)
epsilon = 1e-6;
function [x_aprox, y_aprox, N] = MetNewtonSist(F, J, x0, y0, epsilon, x, y)
%added x and y and renamed eps to epsilon
[x_aprox, y_aprox, N] = MetNewtonSist(F, J, 1, 1, epsilon, x, y);