![bd7f18c87cb37a95e2d5d53fbef48bdc.gif](https://i-blog.csdnimg.cn/blog_migrate/b7466d61bcd988ebdff48cb197f875c2.gif)
MATLAB求解方程
(1)roots函数
功能:用于求解多项式方程的根,以列矢量的形式返回多项式的根。
调用格式:r=roots(p),p是多项式系数按降幂排列所形成的向量。
示例:求方程3x2-2x-4=0的根。
代码:
p=[3,-2,-4];
r=roots(p);
方程的根为x1=1.5352,x2=-0.8685.
(2)solve函数
功能:用于求解方程的符号解。
调用格式:r=solve(eq,var),eq为待求解符号函数表达式;var为自变量。
[y1,...,yn,parameters,conditions]=solve(eq,vars,Name,value),eq为待求解符号函数表达式;var为自变量;Name属性主要有'ReturnConditions','IgnoreAnalyticConstraints','IgnoreProperties','MaxDegree','PrincipalValue','Real';value值有false和true,默认为false。
ReturnConditions:是否返回参数条件;ReturnConditions为真时,返回参数条件;value值有false和true,默认为false。
IgnoreAnalyticConstraints:方程的化简方法;value值有false和true,默认为false。
IgnoreProperties:返回与变量属性不一致的解;value值有false和true,默认为false。
MaxDegree:多项式方程的最高阶次;value默认值为2。
PrincipalValue:是否返回一个根;PrincipalValue为真时,仅返回一个根,如果方程无根,则返回一个空符号;PrincipalValue为假时,返回所有的根;value值有false和true,默认为false。
Real:是否仅返回实根;Real为真时,仅返回实根;value值有false和true,默认为false。
示例1:采用solve求解方程sinx=1的解。
代码1:
syms x
eq= sin(x) == 1;
r = solve(eqn,x)
示例2:采用solve求解方程sin(x) + cos(2*x) = 1的解
代码2:
syms x
eqn = sin(x) + cos(2*x) == 1;
solve(eqn, x, 'PrincipalValue', true)
solve(eqn, x, 'PrincipalValue', false)
PrincipalValue为真时,解为0;PrincipalValue为假时,解为0,π/6,5π/6;
示例3:求方程组的解
代码3:[x,y,z]=solve('x+2*y-z=27','x+z=3','x^2+3*y^2=28','x','y','z')
注意:待求解变量大于2个时,声明的变量顺序就是solve返回解的顺序。
有单引号时,等号用“=”;无单引号时,等号用“==”
(3)fsolve函数
功能:用最二乘法求非线性方程的根。
调用格式:r=fsolve(eq,x0),eq为非线性方程,x0为初始值;用于求非线性方程eq在x0附近的近似解。
r=fsolve(eq,x0,options),eq为非线性方程,x0为初始值,options为优化选项,用optimoptions设置选项;用指定的优化选项解方程。
示例:求解方程的解。
代码:
fun = @root2d;
x0 = [0,0];
x = fsolve(fun,x0)
单独定义方程为函数root2dfunction F=root2d(x)
F(1) = exp(-exp(-(x(1)+x(2)))) - x(2)*(1+x(1)^2);
F(2) = x(1)*cos(x(2)) + x(2)*sin(x(1)) - 0.5;求得方程的根为x1=0.3532;x2=0.6061;
(4)fzero函数
功能:求非线性方程在给定值附近的根
调用格式:
r=fzero(eq,x0),eq为非线性方程,x0为初始值;用于求非线性方程eq在x0附近的近似解。
r=fzero(eq,x0,options),eq为非线性方程,x0为初始值,options为优化选项,用optimoptions设置选项;用指定的优化选项解方程。
示例:求解方程sinx=0在3附近的根
代码:
fun = @sin;
x0 = 3;
x = fzero(fun,x0)
求得方程的根为x=3.1416.
(5)linsolve函数
功能:求线性方程组的解
调用格式:r=linsolve(A,B),用于求解线性方程组Ax=B的解,B为列向量。
r=linsolve(A,B,opts)
示例:求线性方程的解。
代码:
A=[1 2 -1; 1 0 1; 1 3 0];
B=[2;3;8];
X=linsolve(A,B);
![c67ac5f19b9bf6b7b4bc6c896d64a136.gif](https://i-blog.csdnimg.cn/blog_migrate/ab67a18df00a44c778e036ab2db27fe0.gif)
饭可以一日不吃
觉可以一日不睡
书不可以一日不读