我为“矢量函数的 Newton-Raphson 方法”制作了一个程序。
假设我有这个功能f(x,y)=(x-y,x+y^2)
。雅可比矩阵是[1,-1;1,2*y]
。然后我输入r=symvar(jacobian)
并评估它,我使用subs(jacobian,r,x0)
.
x0=(0,0)
如果第一个变量x
没有出现,我如何评估矩阵?
我为“矢量函数的 Newton-Raphson 方法”制作了一个程序。
假设我有这个功能f(x,y)=(x-y,x+y^2)
。雅可比矩阵是[1,-1;1,2*y]
。然后我输入r=symvar(jacobian)
并评估它,我使用subs(jacobian,r,x0)
.
x0=(0,0)
如果第一个变量x
没有出现,我如何评估矩阵?
我正在为你为什么试图让你(和我)的生活复杂化而摸不着头脑。
您不需要计算 jacobian:Matlab 使用jacobian
函数为您计算(首先您必须从工作区中删除 jacobian 变量实例)
jak = jacobian(f);
接下来,您可以使用该eval
功能进行投标:
x = 0, y = 0;
eval(jak)
ans =
1.00 -1.00
1.00 0
如果 x 没有出现在 jacobian 的表达式中,则意味着它的值不会影响得到的 jacobian。
如果您的问题是如何评估:
[1,-1;1,2*y]
当 x 和 y 都等于 0 时,答案很简单:
[1,-1;1,2*0]
归结为:
[1,-1
1, 0]
正如其他用户已经建议的那样,您可以遵循此替代解决方案
syms x y
jacobian([x - y,x + y.^2])
对于评估,x = 0
只需输入
subs(jacobian([x - y,x + y.^2]),0)
我希望这有帮助。