- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 微分方程问题的解法;5.1 常系数线性微分方程的解析解方法;格式:
y=dsolve(f1, f2, …, fm)
格式:指明自变量
y=dsolve(f1, f2, …, fm ,’x’)
fi 即可以描述微分方程,又可描述初始条件或边界条件。如:
描述微分方程时
描述条件时 ;例:
; y=dsolve([D4y+10*D3y+35*D2y+50*Dy+24*y=,...
87*exp(-5*t)*cos(2*t+1)+92*exp(-5*t)*sin(2*t+1) +10], y(0)=3, Dy(0)=2, D2y(0)=0, D3y(0)=0);分别处理系数,如:
[n,d]=rat(double(vpa(-445/26*cos(1)-51/13*sin(1)-69/2)))
ans =
-8704 185 % rat()最接近有理数的分数; y=dsolve([D4y+10*D3y+35*D2y+50*Dy+24*y=,...
87*exp(-5*t)*cos(2*t+1)+92*exp(-5*t)*sin(2*t+1) + ... 10],y(0)=1/2,Dy(pi)=1,D2y(2*pi)=0,Dy(2*pi)=1/5)
如果用推导的方法求Ci的值,每个系数的解析解至少要写出10数行,故可采用有理式近似 的方式表示.
vpa(y,10) %有理近似值
ans =
1.196361839*exp(-5.*t)+.4166666667-.4785447354*sin(t)*cos(t)*exp(-5.*t)-.4519262218e-1*cos(2.*t)*exp(-5.*t)-2.392723677*cos(t)^2*exp(-5.*t)+.2259631109*sin(2.*t)*exp(-5.*t)-473690.0893*exp(-3.*t)+31319.63786*exp(-2.*t)-219.1293619*exp(-1.*t)+442590.9059*exp(-4.*t) ;例:求解;例:
syms t x
x=dsolve(Dx=x*(1-x^2))
x =
[ 1/(1+exp(-2*t)*C1)^(1/2)]
[ -1/(1+exp(-2*t)*C1)^(1/2)];5.2 微分方程问题的数值解法; 微分方程求解的误差与步长问题:;;
function [outx,outy]=MyEuler(fun,x0,xt,y0,PointNum)
% fun 表示f(x,y); x0,xt:自变量的初值和终值;
y0:函数在x0处的值,其可以为向量形式;
PointNum表示自变量在[x0,xt]上取的点数
if nargin5 | PointNum=0
%PointNum 默认值为100
PointNum=100;
end
if nargin4 % y0默认值为0
y0=0;
end;h=(xt-x0)/PointNum;
%计算步长h
x=x0+[0:PointNum]*h;
%自变量数组
y= zeros(size(x)); y(1)=y0;
for k = 1:PointNum
f=y(k)+h*feval(fun,x(k),y(k));
y(k+1)=f;
%对于所取的点x迭代计算y值
end
outy=y, outx=x, plot(x,y) %画出方程解的函数图;例:求;y=dsolve(Dy=y+sin(t),y(0)=1);
%该常微分方程的解析解
for k=1:33
t(k)=x11(k);
y2(k)=subs(y,t(k)); %求其对应点的离散解
end
plot(x1,y1,+b,x11,y11,og,x11,y2,*r)
legend(h=0.4的欧拉法解,h=0.2的欧拉解,符号解);5.2 微分方程问题的数值解法; 微分方程求解的误差与步长问题:;;提高数值解精度的方法之一:
减小步长h的值;;
function [outx,outy]=MyEuler(fun,x0,xt,y0,PointNum)
% fun 表示f(x,y); x0,xt:自变量的初值和终值;
%y0
文档评论(0)