数学建模 之 matlab初学两天搞定基础 方程组篇(3/5)

本文主要介绍在matlab中,常微分方程初值解,常微分方程组通解,二元非线性方程组,多元线性方程组的求解。

先补充一点,我们知道一个方程的解在不同的域,其解也不一样,更有甚者我们不知道方程的系数,但要求结果用变量表示。

所以我们要定义变量的符号如下

syms x y z a b c x1 x2 x3 x4;
A_shishu=solve(x^4==81,x,'real',true)%在实数域的解

solve(x^4==81,x,'real',true)表示求解x^4=81在R上的解,如果没有'real',true那么结果将会有3i和-3i


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

solve(a*x^2+b*x+c,x)则表示x为变量a b c为系数求解x

下面正式求解二元非线性方程组
zu= [x^2-x*y+y==3,x^2-4*x+3==0];
bianliang= [x y];
[x,y]=solve(zu,bianliang)%%二元非线性方程组

首先定义方程组 然后再定义方程组中的变量最后通过算式[x,y]=solve(,)算出,值得注意的是括号里必须先方程组 然后再是变量的名称顺序不能换


zu1=[x1-2*x2+3*x3-4*x4==4,x2-x3+x4==-3,x1+3*x2+x4==1,-7*x2+3*x3+x4==-3];
bianliang1= [x1 x2 x3 x4];
[x1,x2,x3,x4]=solve(zu1,bianliang1)%%多元线性方程组

这个算法与上面同理,但是补充一点,本人用的2021年的matlab,这个算法是近几年更新的,以前算法这两种方程组需要分类。2021的matlab 有些功能升级了导致跟老版本的不一致,比如代数方程求解部分,以前就是线性的不加‘‘,非线性的就需要加‘‘。还有解多元方程组用矩阵的方法,现在都可以用统一的这种函数形式了

y=dsolve('D2y-4*Dy+29*y=0','y(0)=0','D1y(0)=15','x')%%常微分方程初值

其中D2y表示y的二阶导,D必须要是大写后面,最后的x表示以x为蚕食,如果不填那么matlab默认参数为t


[x,y,z]=dsolve('2*x-3*y+3*z-Dx=0','Dy=4*x-5*y+3*z','Dz=4*x-4*y+2*z','t')%%常微分方程组通解

最后结果如下

A_shishu =
-3
 3


A_bianliang =
-(b + (b^2 - 4*a*c)^(1/2))/(2*a)
-(b - (b^2 - 4*a*c)^(1/2))/(2*a)


x =
3
y =
3


x1 =
-8
x2 =
3
x3 =
6
x4 =
0

y =
3*sin(5*x)*exp(2*x)


x =
C1*exp(-t) + C3*exp(2*t)
y =
C1*exp(-t) + C2*exp(-2*t) + C3*exp(2*t)
z =
C2*exp(-2*t) + C3*exp(2*t)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

君无戏言。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值