matlab中,如何在一个符号表达式中赋值求解

2025-03-11 02:23:40
推荐回答(3个)
回答1:

利用命令 help subs,查看subs的作用.
Matlab中的实例为:
实例1: Single input:
Suppose a = 980 and C1 = 3 exist in the workspace.
The statement
y = dsolve('Dy = -a*y')
produces
y = exp(-a*t)*C1
Then the statement
subs(y)
produces
ans = 3*exp(-980*t)
实例2: Single Substitution:
subs(a+b,a,4) returns
4+b.

实例3: Multiple Substitutions:
subs(cos(a)+sin(b),{a,b},{sym('alpha'),2}) returns
cos(alpha)+sin(2)

实例4: Scalar Expansion Case:
subs(exp(a*t),'a',-magic(2)) returns

[ exp(-t), exp(-3*t)]
[ exp(-4*t), exp(-2*t)]

实例5: Multiple Scalar Expansion:
subs(x*y,{x,y},{[0 1;-1 0],[1 -1;-2 1]}) returns
[ 0, -1]
[ 2, 0]
另外,可参考subexpr

回答2:

比如要赋值a=1 b=2
那么用subs(r,[a b],[1 2]);
语法是subs(s,old,new);
假如只有一个符号变量,可以为subs(s,new);

回答3:

syms a b
r=a+b
subs(subs(r,a,1),b,2)
%上面就是将a=1,b=2代入。

%当然也可以用这样弄
syms a b
r=a+b
a=1
b=2
subs(r)