1.示例
%注意:这里的等号一定要有两个,一个等号表示赋值 %求解单变量方程 clear;clc syms x eqn=sin(x)==-1; s=solve(eqn)
%通过指定'ReturnConditions'为真,返回一个方程的完整解,其中包含解的参数和条件。 [solx,parameters,conditions]=solve(eqn, x, 'ReturnConditions', true)
%多变量方程求解 clear;clc syms a b c x eqn=a*x^2+b*x+c==0; s=solve(eqn,x) % 将x视为未知数求解 s=solve(eqn, c) % 将c视为未知数求解
%方程组求解 clear;clc syms u v m eqn=[2*u+v==m,u-v==1]; s=solve(eqn, [u,v]);%结构体显示 s.u s.v %不用结构体显示:[u,v]=solve(eqn, [u, v])
%solve可能会警告 %警告:Cannot solve symbolically. Returning a numeric approximation instead. syms x eqn=200*sin(x)==x^3 - 1; solve(eqn, x) %fplot函数可绘制表达式的图形 fplot(200*sin(x), [-5 5]) hold on fplot(x^3 - 1, [-5 5])
从图中可以看出在-5到5区间内有三个解,但solve函数只返回了一个解。可以尝试vpasolve函数。
%vpasolve函数 syms x eqn=200*sin(x)==x^3 - 1; vpasolve(eqn, x, [3 4])%用vpasolve函数指定求[3 4]上的解 vpasolve(eqn, x, [-1 1])%用vpasolve函数指定求[-1 1]上的解 vpasolve(eqn, x, -3) %给定搜索的起始点
还可以用fsolve函数。
%fsolve函数 fun=@root2d; x0=[0,0];%从 [0,0] 点开始求解方程组。 x=fsolve(fun,x0)