提到符号变量替换,想必大家的第一反应都是subs函数,这个函数的确具有很强大的功能。例如下面的代码:
%% 简单地单个变量的替换
syms a b
subs(a + b, a, 4) % 将变量a替换为数值4
%% 计算表达式的值
syms x
y = x^2;
x = 2;
subs(y) % 将x=2带入到y的表达式中求解
%% 多个变量的替换
syms a b
subs(cos(a) + sin(b), [a, b], [sym('alpha'), 2])
% subs(cos(a) + sin(b), {a, b}, {sym('alpha'), 2}) % 注意此处圆括号换成了花括号,进行多次替换
%% 将标量替换成数组
syms a t
subs(exp(a*t) + 1, a, -magic(3))
% 符号数组中元素替换
A = sym('A', [2,2])
B = sym('B', [2,2])
A44 = subs(A, A(1,1), B) % 注意subs会将A矩阵扩展成4*4大小
%% 将多个标量替换成数组
syms x y
subs(x*y, {x, y}, {[0 1; -1 0], [1 -1; -2 1]}) % 注意此时两个矩阵乘法是element-wise的
%% 方程的替换
syms x y
eqn1 = sin(x)+y == x^2 + y^2;
eqn2 = y*x == cos(x);
eqn2 = isolate(eqn2,y) % 使用isolate函数分离出变量y
eqn1 = subs(eqn1,lhs(eqn2),rhs(eqn2)) % 对eqn1中的y使用eqn2的右边进行替换
%% 方程内的替换
syms x y a
syms f(x, y)
f(x, y) = x + y;
f =