作者:孤剑
这几天一直担心数学建模的问题,虽然自己过生日的时候,我认为的几个朋友没有打电话给我,很伤心,但是生活不容许你有太多的伤心,还是得学习。
眼看马上就要到了数学建模考试的时间了,自己还有很多的东西需要学习,今天看了看微分方程的求解,不时很明白。
[t,x]=solver('function',ts,x0,options)
说明:
1.t为由solver返回的函数的自变量;
2.x为由solver返回的函数值;
3.solver为微分方程的解决函数,ode23,ode45,odel13,odel5s,ode23s函数名称;
4.ts=[to,tf],to,tf为自变量的初值和终值;
5.x0函数的初始值;
6.options:用南瓜糊设定误差限额(缺省时为10^(-3),绝对误差为:10^(-6)),命令为:options=odeset('reltol',rt,'abstol',at);rt,at分别为设定的相对误差和绝对误差;
注意:
1.当为多为时,x0,x君为多为,m-文件中应该以x的分量形式写成;
2.高阶计算时,需要转化为一阶微分方程;
当自己联系是,事例为:
t1.m
function t1=t1(t,y)
t1=zeros(2,1);
t1(1)=y(2);
t1(2)=t;
>> [x,y]=ode45('t1',[0 10],[0 0]);plot(x,y(:,1),'r*');grid on
等到的函数是,y=x^3/6
图像如下:
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><lock aspectratio="t" v:ext="edit"><img alt="Tuxian " hspace="0" src="http://www.jackcn.com/leadbbs/images/upload/2004/09/08/205130.jpg" align="absMiddle" border="0"></lock></shapetype>
<shapetype stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><lock aspectratio="t" v:ext="edit"></lock></shapetype>
<shapetype stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><lock aspectratio="t" v:ext="edit">不知道为什么,现在好像不时很明白这些东西,但是会用了!嘿嘿!</lock></shapetype>