首页 > 编程笔记 > MATLAB笔记 阅读:2

MATLAB solve()解方程的用法(附带实例)

在 MATLAB 中,函数是已经设计好的子程序,执行过程中其内部实现是不可见的。因此,无法直接观察方程的变形过程,无法判断变形是否引起增根或遗根,这就需要对结果进行校验,以确保与原方程一致。

方程的种类繁多,但用 MATLAB 符号方程解算函数来求解方程,其函数调用格式简明精炼,求解过程很简单,使用也很方便。利用 solve() 函数可以求解符号代数方程,其调用格式如下:
S=solve(eqn,var)    % 求方程 eqn 中关于变量 var 的解
                    % 不指定 var,则自动确定求解变量。如 solve(x+1==2,x) 会求方程 x+1=2 的解 x
S=solve(eqn,var,Name,Value) % 使用一个或多个 Name-Value 对指定的附加选项
Y=solve(eqns,vars)  % 求方程组 eqns 中关于变量 vars 的解,并返回包含解的结构体
                    % 不指定 vars 时由 symvar 确定求解变量,变量数目等于方程组 eqns 的方程数
Y=solve(eqns,vars,Name,Value)  % 使用一个或多个 Name-Value 对指定的附加选项
[y1,...,yN]=solve(eqns,vars)    % 求方程组 eqns 中关于变量 vars 的解
                                % 并将解赋值给变量 y1,...,yN
                                % 不指定 vars 时由 symvar 确定求解变量,变量数目等于输出参数 N 的数目
[y1,...,yN]=solve(eqns,vars,Name,Value)  % 使用一个或多个 Name-Value 对指定的附加选项
[y1,...,yN,para,cond]=solve(eqns,vars,'ReturnConditions',true)   % 返回附加参数 para 和条件 cond,用于指定解中的参数和解的条件
求方程 eqn 或方程组 eqns 关于指定变量 var 或 vars 的解时,输入参数 eqn 或 eqns 是字符串表达的方程(指 eqn=0 或 eqns=0)或字符串表达式(将等式等号右边的非零项部分移项到左边后得到的没有等号的左端表达式),函数的输入参数 var 或 vars 是对方程组求解的指定变量。方程组的多个方程之间用英文输入状态下的逗号“,”加以分隔。

【实例】对以下联立方程组,求 a=1,b=2,c=3 时的 x、y、z。


在命令行窗口中输入以下语句,并查看输出结果。
>> syms x y z a b c;
>> a=1; b=2; c=3;
>> eq1=y^2-z^2-x^2    % 也可为 eq1=y^2-z^2-x^2==0

>> eq2=y+z-a    % 也可为 eq2=y+z-a==0
>> eq3=x^2-b*x-c    % 也可为 eq3=x^2-b*x-c==0
>> [x,y,z]=solve(eq1, eq2, eq3, x,y,z)
x =
    -1
    3
y =
    1
    5
z=
    0
    -4
由结果可知,方程组的解有以下两组。经验算,两组解均为方程组的解。

相关文章