MATLAB 解方程组

解单一方程

S=solve(eqn,var)

  • 解等式eqn关于自变量var的解。var省略则自动检测(默认为x)。其中 eqn 可以是等式,也可以是函数,若为函数,则默认为 eqn==0 的解。

S=vpasolve(eqn,[a b])

  • 计算 eqn 在区间 \([a,b]\) 上的解,但是只能是数不能含有符号参数。

syms x a b c
eqn1 = a * x ^ 2 + b * x + c;
s1 = solve(eqn1)
eqn2 = sin(x) == cos(x);
s2 = vpasolve(eqn2)

在这里插入图片描述

解方程组

Y=solve(eqns,vars)

  • eqns是方程组的符号向量,即$[eqn1,eqn2,...]\(。var是未知数向量,Y是所求结果。如果只写一个Y,则返回的Y是结构体,如果将Y写成\)[sol1,sol2,...]$的形式,则每个元素为var中的解。

clear
syms u v
eqns = [2 * u ^ 2 + v ^ 2 == 0, u - v == 1];
vars = [v, u];
[solv, solu] = solve(eqns, vars)

方程组的解带入函数

  • 当方程组的解是结构体Y时,要计算函数$f$的值,可以使用语句: \(A=subs(f,Y)\),即可将方程得到的解带入$f$。

syms u v
eqns = [2 * u + v == 0, u - v == 1];
S = solve(eqns, [u, v]);
f = u ^ 3 + 2 * v;
a = subs(f, S);

本文章使用limfx的vsocde插件快速发布