用matlab 解这个简单微分方程的数值解,急

y'=-y+t+1,y(0)=1
第一步要求先解解析解,再解数值解,还要画出解析的图形曲线和数值解图形,求所有的详细代码和图形。说详细点,新手不懂。

clc
clear all
close all

%主程序:
yy=dsolve('Dy=-y+t+1','y(0)=1','t')
tt=linspace(0,1,1001); % t是[0,0.001,0.002,...,1]
for i=1:1001
t=tt(i);
f1(i)=eval(yy);
end
figure(1)
plot(tt,f1,'r')
title('Ana')
%解析解画完
%数值解
[ttt,f2] = ode45(@rigid,tt,1);
figure(2)
plot(tt,f2,'b')
title('Num')

===================================
%存成rigid.m
function dy=rigid(t,y)
dy=-y+t+1;
===================================

一共两个文件main.m, rigid.m, 不明白可追问
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-31
求解解析解:直接在命令窗口输入dsolve('Dy=y+t+1','t')即可。追问

还有数值解呢。。。还要画图呢。。。。

matlab微分方程的解?
1、自定义微分方程组函数,odefun(x,y)2、定义x【0,10】间若干等份的数值,如n=50 3、定义y的初值,即 y0=[2,7];4、使用ode45函数求y(x),z(x)数值解,即 [x,y]=ode45(@odefun,x,y0);5、使用plot函数,绘制x—y(x),x—z(x)曲线图 这里,y(1)代表y(x)的数值解,y(2)...

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

matlab 求解 微分方程 数值解 求代码
clear allclc f=@(x,y)([y(2); y(1)\/3536.4*(y(2)^2+14.142*y(2)+70.71)]);[x,Y]=ode45(f,[0 20],[3 0]);plot(x,Y(:,1),x,Y(:,2)),legend('y','dy\/dt')xlabel('x')

用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数值法求解微分方程的解
先定义个函数:function f=fffff(t,y)f=[y(2);cos(y(1))];然后 [t,y]=ode45(@fffff,[0,2],[0,0]);plot(t,y(:,1),'r',t,y(:,2),'b')即可。我给你设了初值【0,0】,你可以自己定义。红线为y,蓝线为y'.你先把上面的函数fffff写成m文件,保存到你的matlab工作目录里...

怎么用matlab解这个微分方程
求解常微分方程(组),一般可以用dsolve函数求其解析值,但有的微分方程只能通过ode函数求出其数值解。题主给出的微分方程,如用dsolve函数求解,则会出现错误,所以该方程可以用ode45函数得到其数值解。求解过程如下:a0=0;tspan=[0,5];fun=@(t,a)2\/(-3+2*(1-a)^(-1\/3)+4*(1-a)^(-...

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

MATLAB题,用到欧拉公式求微分方程的数值解
欧拉法解一阶常微分方程 例子dy\/h=-y+x+1 f=inline('-y+x+1','x','y'); %微分方程的右边项 f = inline('x-2*y','x','y');y0 = 2; %初始条件 h = 0.025; %步长 xleft = 0; %区域的左边界 xright = 1; %区域的右边界 x = xleft:h:xright;n =...

如何用matlab求解微分方程组的数值解
在Matlab下输入:edit zhidao_feiying.m,然后将下面两行百分号之间的内容,复制进去,保存 function y=zhidao_feiying(t,x)a=1;b=2;c=3;d=4;比方说 f=a*x+y-z;g=b*sin(x*y)-c*cos(z);h=d*y-a*x;注意x用x(1)代,y用x(2)代,z用x(3)代 f=a*x(1)+x(2)-x(3);g...

用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...

相似回答