使用MATLAB的solve解方程:单变量,多变量,方程组 |
您所在的位置:网站首页 › 如何计算未知数 › 使用MATLAB的solve解方程:单变量,多变量,方程组 |
单变量
clear,clc;
syms x;
answ = solve(sin(x)==1,x)
一个等号表示赋值,两个等号才表示相等 % answ = % % pi/2对于单变量也可省略未知数 answ = solve(sin(x)==1)也可以这样写 clear,clc; syms x; equ = (sin(x)==1);%equ = sin(x)==1; answ = solve(equ) 得出三角函数的所有解上面我们求得的只是一个解,因为三角函数是周期函数,如果要得到所有的解,则需要加上条件 [answ,params,conditions] = solve(equ,x,'returnconditions',true) % answ = % % pi/2 + 2*pi*k % % % params = % % k % % % conditions = % % in(k, 'integer') 求解多变量方程 clear,clc; syms a b c x; equ = a*x^2+b*x+c==0;将x视为未知数 answ1 = solve(equ,x) % answ1 = % % -(b + (b^2 - 4*a*c)^(1/2))/(2*a) % -(b - (b^2 - 4*a*c)^(1/2))/(2*a)将a视为未知数 answ2 = solve(equ,a) % answ2 = % % -(c + b*x)/x^2 求解方程组多个方程,要用矩阵表示出来 clear,clc; syms u v a; equ = [2*u+v==a,u-v==1];第一种表达方式:返回的为结构体形式 answ = solve(equ,[u,v])%第二个参数表明要解的对象 % answ = % % 包含以下字段的 struct: % % u: [1×1 sym] % v: [1×1 sym] answ.u % ans = % % 1/3 + a/3 answ.v % ans = % % - 2/3 + a/3第二种表达方式:返回的不是结构体 [answ1,answ2] = solve(equ,[u,v]) solve的求解能力有限solve的求解能力有限,有时候对于复杂的方程只能解出部分的解: clear,clc; syms x; equ = sin(x)==x^2-1; solve(equ,x)此时出现了警告,而且只返回一个解 % 警告: Unable to solve symbolically. % Returning a numeric solution using % ans = % % -0.63673265080528201088799090383828 %再分别绘制两个函数的图像,看其交点,发现有两个,跟解出来的不同 fplot(sin(x),[-2 2]) hold on; fplot(x^1-1,[-2 2]) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |