【问题标题】:Input vector to a symbolic system of functions函数符号系统的输入向量
【发布时间】:2021-02-03 21:21:29
【问题描述】:

假设我编写了一个包含 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)

【问题讨论】:

    标签: function matlab system equation


    【解决方案1】:

    不是最优雅的,但目前我能想到的最好的方法是将它放在函数包装器中。这可能是将输入作为数组传递的一种方法。这将弥合索引数组输入以传递到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
    

    【讨论】:

    • 或内联:g = @(x) f(x(1), x(2), x(3));
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 2021-02-05
    • 2014-03-09
    • 1970-01-01
    相关资源
    最近更新 更多