使用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])
推荐内容
阅读全文
AI总结
更多推荐
相关推荐
查看更多
llama_index

LlamaIndex(前身为GPT Index)是一个用于LLM应用程序的数据框架
halo

强大易用的开源建站工具。
freeCodeCamp

freeCodeCamp.org的开源代码库和课程。免费学习编程。
热门开源项目
活动日历
查看更多
直播时间 2025-04-25 15:00:00


直播时间 2025-04-23 19:00:00

GitTalk:国内首个微服务编排框架Juggle实战解析
直播时间 2025-04-22 18:31:56

字节AI 黑科技!从 Manus Agent 入门 Eino
直播时间 2025-04-09 14:34:18

樱花限定季|G-Star校园行&华中师范大学专场
直播时间 2025-04-07 14:51:20

樱花限定季|G-Star校园行&华中农业大学专场
目录
所有评论(0)