首页 > 解决方案 > 函数符号系统的输入向量

问题描述

假设我编写了一个包含 3 个可分离函数(方程组)的函数。我想为我的变量的 3 个不同值计算此函数的值,但我不想使用“subs”函数。我想要做的是输入一个包含我的变量所需值的向量并计算作为向量的主函数。我怎么能这样做?请注意,我不想按每个变量调用该函数。这是我的代码:

syms x y z
f1 = symfun(x.^2+3.*x.*y,[x,y,z]);
f2 = symfun(z.^3+y-x.^3-12,[x,y,z]);
f3 = symfun(2*z+x.*y+z.*x+1,[x,y,z]);

f = [f1;f2;f3];

我的意思是f通过例如计算函数:f([12 4 6])而不是通过f(12 4 5)

标签: functionmatlabsystemequation

解决方案


不是最优雅的,但我现在能想到的最好的就是把它放在一个函数包装器中。这可能是将输入作为数组传递的一种方法。这将弥合索引要传递给symfcn(符号函数)的数组输入之间的差距。

f([12 4 6])


function [Results] = f(Inputs)
syms x y z
f1(x,y,z) = x.^2+3.*x.*y;
f2(x,y,z) = z.^3+y-x.^3-12;
f3(x,y,z) = 2*z+x.*y+z.*x+1;

Sym_Functions = [f1;f2;f3];
Results = Sym_Functions(Inputs(1),Inputs(2),Inputs(3));
end

推荐阅读