第一篇:兩點邊值問題地有限差分法偏微分方程數(shù)值解課程實驗報告
學
生
實
驗
報
告
實驗課程名稱
偏微分方程數(shù)值解
開課實驗室
數(shù)統(tǒng)學院
學
院
數(shù)統(tǒng)
年級
2013 專業(yè)班
信計 2 2 班
學
生
姓
名
學
號
開
課
時
間
2015 至
2016 學年第2
學期
總
成績
教師簽名
數(shù)學與統(tǒng)計學院制
開課學院、實驗室:
數(shù)統(tǒng)學院
實驗時間
:2016 年
月
日
實驗項目
名
稱
兩點邊值問題的有限差分法
實驗項目類型
驗證
演示
綜合設計
其他
指導教師
曾芳
成績
是
一.實驗目的通過該實驗,要求學生掌握求解兩點問題的有限差分法,并能通過計算機語言編程實現(xiàn)。
二.實驗容
考慮如下的初值問題:
? ?? ?? ?? ?? ? ? ? ? ? ? ? , ,du x du x dLu p x r x q x u x f x x a bdx dx dx? ?? ? ? ? ? ?? ?? ?
(1)? ? ? ? , u a u b ? ? ? ?
(2)其中 ? ? ? ?1, p x C a b ?,? ? ? ? ? ? ? ? , , , r x q x f x C a b ?,? ?min0 p x p ? ?,? ? 0 q x ?,, ? ? 是給定常數(shù)。
將區(qū)間 N 等分,設b ahN??,網(wǎng)點 , 0,1,...,ix a ih i N ? ? ?。
1.在第三部分寫出問題(1)和(2)的差分格式,并給出該格式的局部截斷誤差。
2.根據(jù)你寫出的差分格式,編寫一個有限差分法程序。將所寫程序放到第四部分。
3.給定參數(shù) 0, 1 a b ? ?,3, 1, 2 p r q ? ? ?,0 ? ?,1 ? ?,問題(1)的精確解 ? ?2 1 ??xu x x e,其 中 將 ? ?2 1 ??xu x x e 及 1, 2, 3 ? ? ? p r q 帶 入 方 程(1)可 得 ? ? f x。
分 別 取10,20,40,80,160 N ?,用所編寫的程序計算問題(1)和(2)。將數(shù)值解記為iu,1,..., 1 i N ? ?,網(wǎng)點處精確解記為 ? ? i u,1,..., 1 i N ? ?。然后計算相應的誤差
? ?0maxNiici Ne u u? ?? ?,? ?1201NNiiie h u u??? ??及收斂階? ?2lnln2N Ne e,將計算結(jié)果填入第五部分的表格,并對表格中的結(jié)果進行解釋? 4.將數(shù)值解和精確解畫圖顯示,每種網(wǎng)格上的解畫在一圖。
三.實驗原理、方法(算法)、步驟
1.差分格式:
錯誤!未找到引用源。= =--1/h^2(錯誤!未找到引用源。--((錯誤!未找到引用源。))錯誤!未找到引用源。+ +錯誤!未找到引用源。)+錯誤!未找到引用源。((錯誤!未找到引用源。)/2h+錯誤!未找到引用源。= =錯誤!未找到引用源。
錯誤!未找到引用源。
A,錯誤!未找到引用源。
2.局部階段誤差:
錯誤!未找到引用源。
(u)=O(h^2)
3.程序
clear all
N=10;
a=0;b=1;
p=(x)1;
r=(x)2;
q=(x)3;
alpha=0;beta=1;
f=(x)(4*x^2-2)*exp(x-1);
h=(b-a)/N;
H=zeros(N-1,N-1);g=zeros(N-1,1);%
for i=1
H(i,i)=2*(p(a+(i+1/2)*h)+p(a+(i-1/2)*h))/h+2*h*q(a+i*h);
H(i,i+1)=-(2*p(a+(i+1/2)*h)/h-r(a+i*h));
g(i)=2*h*f(a+i*h)+(2*p(a+(i-1/2)*h)/h+r(a+i*h))*alpha;
end
for i=2:N-2
H(i,i-1)=-(2*p(a+(i-1/2)*h)/h+r(a+i*h));
H(i,i)=2*(p(a+(i+1/2)*h)+p(a+(i-1/2)*h))/h+2*h*q(a+i*h);
H(i,i+1)=-(2*p(a+(i+1/2)*h)/h-r(a+i*h));
g(i)=2*h*f(a+i*h);
end
for i=N-1
H(i,i-1)=-(2*p(a+(i-1/2)*h)/h+r(a+i*h));
H(i,i)=2*(p(a+(i+1/2)*h)+p(a+(i-1/2)*h))/h+2*h*q(a+i*h);
g(i)=2*h*f(a+i*h)+(2*p(a+(i+1/2)*h)/h-r(a+i*h))*beta;
end
u=Hg;
u=[alpha;u;beta];
x=a:h:b;
y=(x.^2).*exp(x-1);
plot(x,u);
hold on
plot(x,y);
y=y"
z=y-u
四.實驗環(huán)境(所用軟件、硬件等)及實驗數(shù)據(jù)文件
Matlab
五.實驗結(jié)果及實例分析
N Nce
收斂階 0Ne
收斂階 10 0.00104256 …… 0.00073524 …… 20 0.00026168 1.9341 0.00018348 1.4530 40 0.00006541 2.0001 0.00004585 2.0000 80 0.00001636 1.9993 0.00001146 2.0000 160 0.00000409 2.0000 0.00000287 2.0000
N N 越大
只會使絕對誤差變小,方法沒變,所以收斂階一致。
圖示為:((綠線為解析解,藍線為計算解))
N=10
N=20
N=40
N=80
N=160
教師簽名
****年**月**日