用matlab求微分方程的解析解和数值解,并进行比较。

如题所述

第1个回答  2014-05-12

clear all
clc
f=@(x,y)([y(2);2*x*y(2)/(1+x^2)]);
[X,Y]=ode45(f,0:100,[1 3]);
y=dsolve('D2y-2*x*Dy/(1+x^2)','y(0)=1','Dy(0)=3','x');
y=@(x)(eval(y));
YY=y(0:100);
plot(0:100,Y(:,1),'o',0:100,YY)
legend('数值解','解析解')

用matlab求微分方程的解析解和数值解,并进行比较。
clear allclcf=@(x,y)([y(2);2*x*y(2)\/(1+x^2)]);[X,Y]=ode45(f,0:100,[1 3]);y=dsolve('D2y-2*x*Dy\/(1+x^2)','y(0)=1','Dy(0)=3','x');y=@(x)(eval(y));YY=y(0:100);plot(0:100,Y(:,

matlab微分方程的解?
这里,y(1)代表y(x)的数值解,y(2)代表z(x)的数值解 二、微分方程的解析解可以dsolve函数来求解。1、对变量y(x),z(x)进行声明,即 syms y(x) z(x)2、对变量y(x),z(x)求一阶导数,即 Dy=diff(y,1);Dz=diff(z,1);3、使用dsolve求y(x),z(x)解析表达式,即 [y,z]=dsol...

matlab中求二阶微分方程 的解析解和数值解,并在同一图形中画出解析解...
y=dsolve('(1+x^2)*D2y=2*x*Dy','y(0)=1','Dy(0)=3',x)y = x*(x^2 + 3) + 1 数值解法:首先编写函数myfun.m function dy=myfun(x,y)dy=zeros(2,1)dy(1)=y(2);dy(2)=2*x*y(2)\/(1+x^2)调用ode45:[x45,y45]=ode45('myfun',[0 10],[1 3])plot(x45,...

用matlab求解微分方程初值问题数值解和解析解,求解范围为区间.并画出...
首先,自定义微分方程的函数,即 dy = 3\/x*y+x^3*(exp(x)+cos(x))-2*x;其二,确定初始条件,即 y0=[(exp(pi)+2\/pi)*pi^3];其三,使用ode45函数,求出其数值解【x,y】二、解析解 微分方程初值问题解析解可以用dsolve函数求解。首先,对y(x)进行变量声明,即 syms y(x)其二,对y...

如何用matlab求解微分方程组的解析解
对于线性微分方程组,一般可以用dsolve()函数求解直接得到其解析解,其计算过程如下:syms t x(t) y(t) %声明变量 D2x=diff(x,2); %求x(t)的二阶导数 Dx=diff(x,1); %求x(t)的一阶导数 Dy=diff(y,1) ;%求y(t)的一阶导数 [x,y]=dsolve(D2x+2*Dx==x+2*y-exp(-t),Dy==...

用matlab解方程
在MATLAB中,解决微分方程的方法主要有两种。首先,对于解析解,可以借助dsolve()函数。例如,设我们有微分方程组Dx=2x+3y和Dy=2x+y,初始条件为x(0)=-2.7,y(0)=2.8,代码如下:matlab syms x(t) y(t)Dx=diff(x,1);Dy=diff(y,1);[x,y]=dsolve(Dx==2*x+3*y,Dy==2*x+y,x...

如何使用Matlab求微分方程的解?
第一种方法:利用dsolve函数求微分方程的符号解(通解):对于一些不是很难,要求出通解的微分方程,用dsolve函数求解。1、 打开Matlab软件-->点击新建脚本菜单,新建一个脚本文件用于编写微分方程求解程序。2、 输入微分方程求解程序-->点击保存-->点击运行。3、在matlab的命令窗口即可看到求解结果,是...

matlab中常微分方程符号解和数值解区别??
ans = (x + 1)\/x^2 数值的方法:结果是一列向量 令y1=y,y2=y1'=y',把原方程转化成微分方程组:y1'=y2 y2'=-2y-4*y*y(1),(x1(0),x2(0))=(0,0).根据上述一阶微分方程组编写M函数文件myfun.m function dy=myfun(x,y)dy=zeros(2,1);dy(1)=y(2);dy(2)=-2*y(1)...

如何用matlab求解微分方程并画图
如何用matlab求解微分方程并画图,可以先用dsolve()或ode()求出其微分方程(组)的解析解或数值解,然后用plot()绘制其图形。例如:解微分方程 y'=y-2t\/y,y(0)=1,0<t<4 1、用dsolve()求解,代码及结果如下 2、用ode45()求解,代码及结果如下 3、当然喽,使用dsolve()或ode(...

用matlab怎么求解微分方程?
Simulink是matlab下基于框图的用于复杂动态系统建模的工具。今以 y"+4y'+4y=cos2t(0≤t≤10),y(0)=1,y'(0)=-2 二阶微分方程为例,用Simulink求解的步骤如下:第一步、分析微分方程的特点确定模块 我们将y"+4y'+4y=cos2t方程改写成y"=cos2t-4y'-4y,从右边可知,式子是由cos2t外加载...

相似回答