Blasius方程的数值解matlab程序Word下载.doc
《Blasius方程的数值解matlab程序Word下载.doc》由会员分享,可在线阅读,更多相关《Blasius方程的数值解matlab程序Word下载.doc(4页珍藏版)》请在冰点文库上搜索。
0.8000000000000000.1060972955378420.2647059995571820.327381783215304
1.0000000000000000.1655630308847090.3297737923612960.322998326329412
1.2000000000000000.2379442372687800.3937674819581910.316583378968660
1.4000000000000000.3229688368951930.4562584560706150.307858224411080
1.6000000000000000.4202943904016780.5167580586411450.296652046000281
1.8000000000000000.5294908391591200.5747519024337040.282921170876929
2.0000000000000000.6500090694701540.6297515231340940.266750311286562
2.2000000000000000.7811822070295200.6812962493004080.248352130535080
2.4000000000000000.9222728056314760.7289734807030940.228082678389961
2.6000000000000001.0724798222828610.7724470697584080.206450263528860
2.8000000000000001.2309501374214950.8114975840686250.184014296855294
3.0000000000000001.3967879095445580.8460296386569050.161369816626103
3.2000000000000001.5690699253450890.8760707526453200.139126737097636
3.4000000000000001.7469154487035860.9017600525255140.117863021963319
3.6000000000000001.9294876861519370.9233315164928120.098081245701445
3.8000000000000002.1160004034510310.9411092427556170.080139603642537
4.0000000000000002.3057193897850770.9555059580929050.064250507286456
4.2000000000000002.4980051682669550.9669559021448410.050519855519064
4.4000000000000002.6923282496160700.9758675850986780.038977900754526
4.6000000000000002.8882185732850130.9826747519817110.029499001922806
4.8000000000000003.0852829165367120.9877958568329080.021859471891081
5.0000000000000003.2832378195729690.9915456498326390.015900519799442
5.1999999999999993.4818387609016070.9942360903768370.011361976112965
5.4000000000000003.6808868432804850.9961530675400220.007933845886624
5.6000000000000003.8802589909031930.9974749309396950.005439882672210
5.8000000000000004.0798506041197960.9983722945980170.003657568419394
6.0000000000000004.2795889371535250.9989716023318460.002407067561230
6.1999999999999994.4794254608023780.9993613586634180.001555212097374
6.4000000000000004.6793245667901770.9996114936251530.000983390226568
6.6000000000000004.8792638411282270.9997679250728730.000610241632299
6.8000000000000005.0792278579105120.9998642056028700.000370938799775
7.0000000000000005.2792069916857190.9999222231417720.000220942955724
7.2000000000000005.4791951859411130.9999563977383570.000129191951169
7.4000000000000005.6791886128001270.9999762929671100.000073770638928
7.6000000000000005.8791851213661380.9999874576967800.000041576427492
7.8000000000000006.0791832861942990.9999937774180380.000022702183282
8.0000000000000006.2791824324459440.9999971163979160.000012416083429
8.1999999999999996.4791820464355970.9999989986192810.000006410840147
8.4000000000000006.6791819596757440.9999999086952430.000003431483786
8.6000000000000006.8791819969198921.0000004088733780.000001736982564
8.8000000000000017.0791821042849741.0000006683416040.000000832235283
9.0000000000000007.2791822572191481.0000007653700940.000000489499078
查看叠代过程,可在命令窗口执行
Y
Y=
0.3000000000000000.4000000000000000.3331153697266140.332050425572608
x
x=
0.9345673820190331.1321572580226841.0021378204450411.000000765370094
%Y表示时的值,x表示(实际为9)时对应下的值。
从中可以看到趋近过程。
数值解和精确解的比较
数值解
精确解
0.332050425572608
0.33206
1
0.165563030884709
0.16577
0.329773792361296
0.32979
0.322998326329412
0.32301
2
0.650009069470154
0.65003
0.629751523134094
0.62977
0.266750311286562
0.26675
3
1.396787909544558
1.39682
0.846029638656905
0.84605
0.161369816626103
0.16136
4
2.305719389785077
2.30576
0.955505958092905
0.95552
0.064250507286456
0.06423
5
3.283237819572969
3.28329
0.991545649832639
0.99115
0.015900519799442
0.01591
6
4.279588937153525
4.27964
0.998971602331846
0.99868
0.002407067561230
0.00240
7
5.279206991685719
5.27926
0.999922223141772
0.99922
0.000220942955724
0.00022
8
6.279182432445944
6.27923
0.999997116397916
1.00000
0.000012416083429
0.00001
8.8
7.079182104284974
7.07923
1.000000668341604
0.000000832235283
0.00000
从上表对比可知,数量解和精确解的结果几乎一致。
该程序最大的优点就是可以对输入不同的初始值,来观察叠代次数和对结果的影响。
例如:
当输入初始值为0.1和1时,与前面的比较见下表:
0.300000000000000
0.100000000000000
0.934567382019033
0.448860281057583
0.400000000000000
1.000000000000000
1.132157258022684
2.085623264677945
0.333115369726614
0.403052886711193
1.002137820445041
1.137910855452804
0.333571519947438
1.000000765370094
1.003052493932121
0.332043411061855
0.999986681577226
0.332050044486290
1.000000000224372
很明显可以看出叠代次数不一样,第二次比第一次多计算两次,但对结果的影响几乎可以忽略不计。
说明叠代初值对叠代次数的影响非常大,如选初值为3和40,则需要计算172次,但仍然能够将精确计算到0.332050043715133。
s.m:
clear,clf
Y
(1)=input('
'
)
[t,y1]=ode45('
q'
[0:
0.2:
9],[0,0,Y
(1)]);
x
(1)=y1(length(t),2);
Y
(2)=input('
[t,y2]=ode45('
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('
9],[0,0,Y(3)]);
x(3)=y3(length(t),2);
n=0;
while1
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('
9],[0,0,Y(n+3)]);
x(n+3)=y(length(t),2);
ifabs(x(n+3)-1)<
10e-7
break;
end
plot(t,y,'
-'
);
xlabel('
η'
),ylabel('
f/df/df^2'
title('
Blasius方程数值解'
gridon;
axis([0,6,-0.5,2]);
q.m:
functiondy=q(x,y)
dy=zeros(3,1);
dy
(1)=y
(2);
dy
(2)=y(3);
dy(3)=-0.5*y
(1)*y(3);