MATLAB中solve的用法

1.简单直接输入

syms a x
re = solve(2*x^2==a,x);

2.先写方程

y = 2*x^2-a;
re2 = solve(y,x);

3. 右边有值

syms a b c x
y = a*x^2+b*x+c==2;
re3 = solve(y,x);
re3;

4. 其它函数,sin(x)*cos(x),求解的表达式

syms x
y = sin(x)*cos(x);
re4 = solve(y,x);
[re4,pa,cond] = solve(y,x,'ReturnConditions',true);
% 其中re4是解的表现形式,pa是解中的参数,cond是参数的形式,整形或者其他

5. 给定解的范围,给解的参数赋值,得出数值解

%% 用法五,特定范围内,求出真实数值解
syms x
y = sin(x)*cos(x);
re5 = solve(y,x);
[re5,pa,cond] = solve(y,x,'ReturnConditions',true);
assume(cond)
interval = [re5>0,re5<2*pi];
s = solve(interval,pa);
v = subs(re5,pa,s);  % 这里举个例子,若re5 = 5+pa,则经过subs函数后,变成5+s

6. 多变量求解

%% 用法六,不局限于求单变量
syms a b c x1 x2
y1 = a*x1^2+b*x2+c;
y2 = a*x1^2-2*b*x2-c^2;
[x1,x2] = solve([y1,y2],[x1,x2])
x1,x2

syms x
y = x^3+1 ==0;
x1 = solve(y,x,'Real',true); % 将求出实际的值

7.多项式求解

%% 用法七,求多项式
syms x
y = x^3+x^2-1==0;
x1 = solve(y,x);
x1 = vpa(x1,10);%% 设置的精度问题
x2 = solve(y,x,'MaxDegree',3); % 更加精确

8.解多元的方程组

syms x y
f1 = x+2*y==1;
f2 = x^2-y==0;
[x,y] = solve([f1,f2],[x,y]);
x,y

你可能感兴趣的:(数值分析,算法,matlab)