如何用Matlab编程计算二阶常微分方程组的数值解

作者&投稿:锺态 (若有异议请与网页底部的电邮联系)
如何用matlab求解一个二阶常系数微分方程组~

第一种方法:利用dsolve函数求微分方程的符号解(通解):对于一些不是很难,要求出通解的微分方程,用dsolve函数求解。

1、 打开Matlab软件-->点击新建脚本菜单,新建一个脚本文件用于编写微分方程求解程序。



2、 输入微分方程求解程序-->点击保存-->点击运行。



3、在matlab的命令窗口即可看到求解结果,是一个关于参数a,b的表达式


第二种方法:利用Matlab中的solver函数(包括ode45、ode23、ode15s等)来求解微分方程的数值解,这种方法是最常用的方法,对于dsolve函数难以求解的方程就可以利用这种方法求解方程的数值解。

1、 打开Matlab-->新建一个脚本文件用于编写求解程序。


2、 在脚本文件中输入求解程序-->点击保存-->点击运行。

3、 这里需要先编写一个函数文件用于表示方程-->点击保存-->编写求解程序-->点击保存-->点击运行。



4、在figure页面就可以看到所求解的微分方程的图形。


如何用matlab求解二阶微分方程,对于一般的微分方程(组)可以用dsolve()函数求得其解析解或数值解,对于较复杂的微分方程(组)可以用ode45()函数求得其数值解。
例如:微分方程,用dsolve和ode45计算t=0.1,0.2时y的值。
y = dsolve('D2y+0.5*Dy+2*y =0','Dy(0)=0,y(0)=1')
t=0.1; y1=eval(y)
t=0.2; y2=eval(y)
==============================================================
t0=[1;0];tspan=[0,20];
[t1,y1]=ode45(@ ode_fun,tspan,t0);

disp('t y dy')
for i=1:3
t=double(t1(i));y=double(y1(i,1));dy=double(y1(i,2));
disp([num2str(t),' ',num2str(y),' ',num2str(dy)])
end
function f = ode_fun(t,y) %自定义的微分方程函数,文件名,ode_fun.m
f=[y(2);-0.5*y(2)-2*y(1)];
end
==============================================================
运行结果

用Matlab编程计算二阶常微分方程组的数值解的方法有很多种,最常用有ode45函数。

ode45函数的使用格式:

【t,y】=ode45(odefun,tspan,y0)

例如:

>> odefun=@(t,y)[y(1)+2*y(2);3*y(1)+2*y(2)]; %自定义函数

>> tspan=[0 20]; %时间

>> y0=[1 1]; %初值

>> [t,y]= ode45(odefun,tspan,y0); 

>> A=[t,y];

>> A

运行结果




如何使用MATLAB进行编程以及绘图?
用MATLAB进行编程以及绘图很简单,具体操作步骤如下:1、找到matlab软件,并打开它。2、我们需要新建一个界面并在其中书写程序。首先我们在左上角找到File这一选项(点击),找到new这一选项鼠标移到该位置并找到script选项(点击)。就会弹出编写程序的界面了。3、我们进入我们创建的matlab的全新界面后,我...

如何编写matlab界面程序
在打开的matlab程序中,点击new---graphicuserinterface,打开创建gui向导。我们选择blankgui,创建空白的gui界面。选择左侧我们需要的控件,我们选择一个button。将控件拖入到gui界面的合适的位置,双击打开设置属性的界面。设计好界面后,我们先不要编写函数内容,先运行界面。他会提醒我们激活界面将保存界面和...

matlab中的脚本程序怎么编写?
在matlab的command window 的窗口中,输入edit 文件名(文件名一般以字母开头),如下:>> edit main 再回车,就会在左侧的current folder里面新建一个名为mian的.m文件,弹出编辑窗口,在编辑窗口输入你要编写的程序即可。也可以直接点击matlab左上角的新建按钮,新建一个文件,即New script,在里面编写...

如何编写matlab文件并运行调试
工程设计、学术研究、市场分析等都需要借助于数学分析工具,作为一款世界著名的矩阵计算软件(Malab),越来越多的人开始学习使用,下面,作为人门教程,首先教大家如何编写M文件并运行调试。如下图所示,打开软件后点击File\/New\/Script后,会出现文件编辑窗口:在文件编辑窗口输入代码,如下图所示:检查代码,...

MATLAB如何编写三维球体自旋程序?
MATLAB编写三维球体自旋程序。下面就随小编一起去看看吧!方法:1、打开MATLAB软件,如图所示 2、新建脚本,并将以下代码复制在MATLAB一个.m文件中,如图所示 clc,clear [x1,y1,z1]=meshgrid(-4:0.2:4,-4:0.25:4,-4:0.16:4);%建立边界区间 v=x1.*exp(-x1.^2-y1.^2-z1.^2);[...

请问如何在Matlab中编写程序?
可以参考下面的代码:编写M文件,代码如下。F=input('Enter the temperature in degrees Fahrenheit?');C=5\/9*(F-32);disp([num2str(F),' deg F equals ',num2str(C,'%.1f'),' deg C'])然后运行即可

如何用matlab公式编辑器编辑公式?
1、先打出“y=”2、接下来需要找到根号√的位置。选择√工具,然后我们需要在√的里面输入3\/16,先找到“-”工具后在相应的位置输入相应的数字。公式模板具体位置如图所示:3、然后sinx只需要直接输入就可以了,不需要模板。下一步我们要找到的模板是幂函数,点击相应的模板,输入数字2就可。里面的...

用matlab如何编写一个函数文件,实现 n!
用matlab如何编写一个函数文件,实现n!的方法。如下参考:1.首先在计算机上打开matlab软件,如下图所示。2.点击打开页面“主页”下的“新建”按钮。3.然后在打开的下拉菜单中选择“function”选项。4.可以打开函数编辑器,在那里可以设置函数的输入。5.然后点击“编辑器”标签中的“保存”按钮,保存编辑...

matlab编程是用什么语言的啊?
MATLAB程序接口:新版本的MATLAB可以利用MATLAB编译器和C\/C++数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++代码。允许用户编写可以和MATLAB进行交互的C或C++语言程序。另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。MATLAB的一个重要特色就是具有一套程序...

如何用matlab实现某年某月某日是星期几 我知道我编的程序已病入膏肓了...
function xingqi=day1234567(year,month,day)year:年,month:月,day:日,本函数可以算出这个日期是星期几 例如: day1234567(2013,10,22)以2000年,1月1日为星期六为基点,前后都可以计算 平年时1到12月份的前一个月的累计天数,[0 31 28 31 30 31 30 31 31 30 31 30]*triu(ones(12))y...

惠东县18834449222: 如何用matlab求解一个二阶常系数微分方程组 -
止叶感苏: 用命令:dsolve('s','s1','s2',…,'x') 其中s 为方程s1,s1,s3,…为初始条件x 为自变量方程s 中用d 表示求导 数d2,d3,…表示二阶三阶等高阶导数初始条件缺省时给出带任意常数 c1,c2,..的通解自变量缺省值为t 也可求解微分方程组 例 1、dsolve('dy=1+y^...

惠东县18834449222: matlab求解二阶常微分方程 -
止叶感苏: d2θ/ds2=cosθ-sinθ两边同时乘dθdθ/dsd(dθ/ds)=cosθdθ-sinθdθ(dθ/ds)^2=2sinθ+2cosθ+cds=dθ/√(2sinθ+2cosθ+c)这个积分不能用初等函数表示:在https://baike.baidu.com/item/超越积分/5292075?fr=aladdin第8个,所以方程的解也不能用初等函数表示.

惠东县18834449222: matlab 中二阶常微分方程的数值解法
止叶感苏: odefun=@(t,x)[x(2);3*x(2)-2*x(1)+1];[t,y]=ode45(odefun,[0:0.01:2],[1 0]);plot(t,y)[t y] 结果 y(0.5000)=0.7896 y= dsolve('D2y-3*Dy+2*y=1','Dy(0)=0','y(0)=1');>> yy =exp(t) - exp(2*t)/2 + 1/2>> feval(@(t)exp(t) - exp(2*t)/2 + 1/2,0.5)ans = 0.7896

惠东县18834449222: matlab里ode45解决二阶常系数微分方程用法 -
止叶感苏: ^1、相关常数都没给,这里随便设置一些数值: m=1;c=2;k=3; y0=4;yp0=5; tf=10; dy=@(t,y)[y(2);-(c*y(2)+k*y(1))/m]; [t,y]=ode45(dy,[0 tf],[y0 yp0]); plot(t,y(:,1)) 2、function test() [t,y]=ode45(@func1, [0,1], [0;0;1;2;2;2]); figure(1); clf; plot(t, y); legend('x','...

惠东县18834449222: 怎么用matlAB解二阶常微分方程组 -
止叶感苏: 必须先转换成一阶微分方程组,才可以解.

惠东县18834449222: 100分紧急求助!matlab怎么求解二阶常微分方程组!! -
止叶感苏: 1、这样的方程组一般求不出解析解,只能求数值解. 2、要想求数值解,条件必须是确定的数据,不能有v0、a之类的符号. 3、需要知道初始条件. 4、你的要求【t关于a、v0的关系】看不明白,t作为时间,应该是独立变量,怎么会有关于a、v0的关系?

惠东县18834449222: 如何用matlab求解二阶微分方程,以及程序实例 -
止叶感苏: 1、对于解析值,你可以用dsolve()函数求解.如求微分方程x*y''+x﹡(y')^2-y'=0的解析解 >> syms y(x) >>Dy = diff(y);D2y = diff(y, 2); >>dsolve(x*D2y+x*(Dy)^2-Dy==0,'x') 运行结果 2、对于数值解,你可以查看二阶常微分方程这个例子,https://zhidao.baidu.com/question/1112476448513751339.html(龙格-库塔方法)

惠东县18834449222: 二元二阶非线性常微分方程matlab解法 -
止叶感苏: matlab里面常使用龙格库塔方法求解常微分方程组,命令是ode45,还有其他一些函数,但是最常用的是ode45,lz可以help一下,很简单的,另外给你一个文档,讲的还是比较详细,希望可以帮到你 http://wenku.baidu.com/view/922e6feae009581b6bd9eb6c.html

惠东县18834449222: 龙格库塔求解二阶微分方程组的MATLAB编程 -
止叶感苏: MATLAB求解x''+0.7x'+0.8x'|x'|+25.6x-25.6x³=0二阶微分方程组的方法,可以按下列步骤进行: 1、建立自定义函数func() function f = func(t,x) %x''+0.7x'+0.8x'|x'|+25.6x-25.6x³=0 f(1)=x(2); f(2)=25.6*x(1)^3-25.6*x(1)-0.8*x(2)*abs(x(2))-0.7*x(2); f=f(:);...

惠东县18834449222: matlab怎么解二阶非齐次常系数微分方程 -
止叶感苏: >> y=dsolve('D2y+100*Dy+200*y=0.6','x') y = C2*exp(x*(10*23^(1/2) - 50)) + C3*exp(-x*(10*23^(1/2) + 50)) + 3/1000

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网