用MATLAB';s符号工具箱
我有一个函数F,它是n个变量中函数的向量。例如,考虑以下内容:用MATLAB';s符号工具箱,matlab,symbolic-math,Matlab,Symbolic Math,我有一个函数F,它是n个变量中函数的向量。例如,考虑以下内容: syms x y z f(f1,f2,f3) f1(x,y,z) f2(x,y,z) f3(x,y,z) X0 = [1 0 1 0]'; f1(x,y,z) = x+y+2; f2(x,y,z) = w-5*x+z^2-4; f3(x,y,z) = 2*x+y^2-z-12; F = vertcat(f1, f2, f3) X = [1 2 3]'; 这里,F是三个变量中三个函数的向量。在我考虑的情况下,我想把F
syms x y z f(f1,f2,f3) f1(x,y,z) f2(x,y,z) f3(x,y,z)
X0 = [1 0 1 0]';
f1(x,y,z) = x+y+2;
f2(x,y,z) = w-5*x+z^2-4;
f3(x,y,z) = 2*x+y^2-z-12;
F = vertcat(f1, f2, f3)
X = [1 2 3]';
这里,F是三个变量中三个函数的向量。在我考虑的情况下,我想把F看成n个变量中的n个方程
我想取一个标量向量,长度为F,如下所示:
syms x y z f(f1,f2,f3) f1(x,y,z) f2(x,y,z) f3(x,y,z)
X0 = [1 0 1 0]';
f1(x,y,z) = x+y+2;
f2(x,y,z) = w-5*x+z^2-4;
f3(x,y,z) = 2*x+y^2-z-12;
F = vertcat(f1, f2, f3)
X = [1 2 3]';
在这个向量上求F。比如:
F(X(1),X(2),X(3))
然而,我需要一种不知道n的方式来写它。我可以通过写作找到n
dims = size(X);
但是这并不能解决我如何在X参数化计算F的问题。有没有办法做到这一点呢?如果你不介意使用单元格而不是数组,你可以用
X=[1 2 3]'
替换X={1 2 3}
(不需要转置)和F(X(1),X(2),X(3))
替换F(X:})
您在这里使用符号数学的具体原因是什么?你举的例子并不需要它。使用普通的数字语法会简单得多。我将研究这个解决方案,并让您知道它是如何运行的。谢谢它起作用了!我还必须定义一个数值数组x来存储x在我的大问题中所包含的迭代解,但是这个解决方案允许索引工作。谢谢你的帮助。