06.08.2013 Views

内容简介作者简介 - 科学与工程计算系

内容简介作者简介 - 科学与工程计算系

内容简介作者简介 - 科学与工程计算系

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2.5<br />

2<br />

1.5<br />

1<br />

0.5<br />

0<br />

-0.5<br />

-1<br />

-1.5<br />

插值后的解曲线<br />

解点<br />

猜测解点<br />

-2<br />

0 0.5 1 1.5 2 2.5 3 3.5 4<br />

图 4.14-5<br />

4.14.5.3 改善边值问题的求解性能<br />

【例 4.14.5.3-1】求解微分方程 z′ ′ + ( λ − 2q<br />

cos2x)<br />

z = 0 ,在此令 q = 15 。边界条件为<br />

z ( 0)<br />

= 1,<br />

z′<br />

( 0)<br />

= 0,<br />

z′<br />

( π ) = 0 。本例的目的:(A)演示含未知参数微分方程边值问题的求<br />

解;(B)边界条件的数学表达和 M 函数文件的编写;(C)函数型猜测解的构成方式;(D)<br />

使用 bvpset 改变选项属性;(E)采用构架直接赋值法改变选项属性。(F)演示“接续”<br />

求解法。<br />

(1)<br />

(2)<br />

[mat4ode.m]<br />

function dydx=mat4ode(x,y,lmb)<br />

q=5;<br />

dydx=[y(2); -(lmb – 2*q*cos(2*x))*y(1)];<br />

[mat4bc.m]<br />

function res=mat4bc(ya,yb,lmb)<br />

res=[ ya(1)-1 ; ya(2) ; yb(2) ];<br />

(3)<br />

clear<br />

x00=linspace(0,pi,4); %<br />

y00=inline('[cos(4*x);-4*sin(4*x)]'); % <br />

lmb=15; %<br />

s0=bvpinit(x00,y00,lmb); %<br />

(4)<br />

opts=bvpset('AbsTol',0.5,'RelTol',0.38,'Stats','on');% <br />

s1= bvp4c(@mat4ode,@mat4bc,s0,opts); %<br />

Lambda1=s1.parameters<br />

The solution was obtained on a mesh of 7 points.<br />

The maximum residual is 1.263e-001.<br />

There were 356 calls to the ODE function.<br />

There were 67 calls to the BC function.<br />

Lambda1 =<br />

40

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!