- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Blasius方程的数值解matlab程序
Blasius方程的数值解matlab程序
PAGE
Blasius方程的数值解matlab程序
程序说明
该程序用于求解边值问题的非线性Blasius方程的数值解,该方程用来描述通过一块无限大平板的不可压缩的两维稳定流问题。
该程序用MATLAB编写,由和两个程序组成,为主程序,采用了打靶法和RKF(龙格—库塔—费尔伯格)法,在MATLAB中,RKF法选用函数ode45。在用打靶法解题过程中需要先选定两个初始值(即的值)用于叠代计算,在叠代过程中,第一次采用的是一次多项式插值法,以后各次均采用的二次多项式插值法。具体程序执行如下:
执行;
命令窗口提示:
请输入第一个任意初始值:
键入 ↓
命令窗口提示:
请输入第二个任意初始值:
键入 ↓
程序执行完毕。
得到数值解图像
需要完整数值解,可在命令窗口执行
[t,y]
ans =
0 0 0
查看叠代过程,可在命令窗口执行
Y
Y =
x
x =
%Y表示时的值,x表示(实际为9)时对应下的值。
从中可以看到趋近过程。
数值解和精确解的比较
数值解
精确解
数值解
精确解
数值解
精确解
0
0
0
0
0
1
2
3
4
5
6
7
8
从上表对比可知,数量解和精确解的结果几乎一致。
该程序最大的优点就是可以对输入不同的初始值,来观察叠代次数和对结果的影响。例如:当输入初始值为和1时,与前面的比较见下表:
很明显可以看出叠代次数不一样,第二次比第一次多计算两次,但对结果的影响几乎可以忽略不计。说明叠代初值对叠代次数的影响非常大,如选初值为3和40,则需要计算172次,但仍然能够将精确计算到。
:
clear,clf
Y(1)=input(请输入第一个任意初始值:)
[t,y1]=ode45(q,[0::9],[0,0,Y(1)]);
x(1)=y1(length(t),2);
Y(2)=input(请输入第二个任意初始值:)
[t,y2]=ode45(q,[0::9],[0,0,Y(2)]);
x(2)=y2(length(t),2);
Y(3)=polyval(polyfit([x(1) x(2)],[Y(1) Y(2)],1),1);
[t,y3]=ode45(q,[0::9],[0,0,Y(3)]);
x(3)=y3(length(t),2);
n=0;
while 1
n=n+1;
Y(n+3)=polyval(polyfit([x(n) x(n+1) x(n+2)],[Y(n) Y(n+1) Y(n+2)],2),1);
[t,y]=ode45(q,[0::9],[0,0,Y(n+3)]);
x(n+3)=y(length(t),2);
if abs(x(n+3)-1)10e-7
break;
end
end
plot(t,y,-);
xlabel(η),ylabel(f/df/df^2);title(Blasius方程数值解)
grid on;
axis([0,6,,2]);
:
function dy=q(x,y)
dy=zeros(3,1);
dy(1)=y(2);
dy(2)=y(
文档评论(0)