MATLAB求解方程与方程组

1. solve函数

①求解单个一元方程的数值解

syms x;

x0 = double(solve(x +2 - exp(x),x));

求x+2 = exp(x)的解,结果用double显示.

使用过程中,也可以写作x+2 == exp(x),注意是‘==’.

另外,若有多个解,该函数只返回一个的解.

②求解含有符号变量方程的解

syms x a b c;

x0 = solve(a*x^2+b*x+c,x);

可以求得两个解.

③求解方程组

syms x y z;

e1 = 2*x - y +z;

e2 = x + y - 6;

e3 = z^2 +2*y;

[x0,y0,z0] = solve(e1,e2,e3,x,y,z);

double([x0,y0,z0])

可以返回多个解,注意不能直接solve进行double转换.

2. vpasolve函数

求某个范围内的方程的解,只能返回一个解.

syms x;

double(vpasolve(x +2 - exp(x),x,[-2,2]))

也可求某个点附近的解.

double(vpasolve(x +2 - exp(x),x,1))

前提是这个’附近的点’不能离所求的解偏差过大.

要找出所有的解,可以先作图,求出每个解的大致区间或临近点.