【實(shí)驗(yàn)原理】
一、復(fù)合辛普森方法
1)復(fù)合辛普森方法基本思路
把積分區(qū)間分成若干子區(qū)間牍鞠,再在每個(gè)子區(qū)間上用低階辛普森求積公式寝凌。
2)復(fù)合辛普森算法描述
二畔濒、龍貝格方法
1)基本思路
實(shí)質(zhì)上是梯形公式的遞推化,是在梯形公式晶乔、辛普森公式和柯特斯公式關(guān)系的基礎(chǔ)上構(gòu)造出的加速計(jì)算的方法珍坊,是一種外推算法。
2)算法描述
【實(shí)驗(yàn)內(nèi)容】
一正罢、回答下面的問題
1.什么是復(fù)合求積公式?寫出事前誤差估計(jì)和事后誤差估計(jì)的公式阵漏。
2.當(dāng)積分區(qū)間是奇數(shù)等份時(shí),如何搭配使用n=2和n=3的辛普森公式翻具,舉例說明履怯。
3.試說明高斯-勒讓德積分、牛頓-柯特斯的區(qū)別和聯(lián)系裆泳。
4.時(shí)間測試下叹洲,請對自己編寫的龍貝格算法的執(zhí)行效率進(jìn)行分析,說明對分次數(shù)和計(jì)算執(zhí)行時(shí)間的關(guān)系工禾?
二运提、編程計(jì)算課后習(xí)題中規(guī)定題目,交回實(shí)驗(yàn)報(bào)告與計(jì)算
1.用不同數(shù)值方法計(jì)算積分
(1)取不同的步長h闻葵,分別用復(fù)合梯形及復(fù)合辛普森求積計(jì)算積分民泵,給出誤差中關(guān)于h的函數(shù),并與積分精確值比較兩個(gè)公式的精度槽畔,是否存在一個(gè)最小的h栈妆,使得精度不能再被改善?
實(shí)驗(yàn)代碼
%程序代碼:復(fù)合梯形
function [t,dy]=tixing2(a,b,n)
format long
h=(b-a)/n;%等分為n份竟痰,計(jì)算步長
x=a:h:b;
x(1)=1;
y=sqrt(x).*log(x);%定義函數(shù)y
x(1)=0;%由于lnx會(huì)導(dǎo)致計(jì)算的瑕疵签钩,故人工為瑕疵點(diǎn)賦值。計(jì)算得y1=0
t=0;
for k=1:(b-a)/h
t=t+y(k)+y(k+1);%復(fù)合梯形公式
end
t=t*h/2;
dy=t+4/9; %誤差
end
實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)代碼
%程序代碼:復(fù)合辛普森
function [t,dy]=sampusen(a,b,n)
h=(b-a)/n; %等分為n份坏快,計(jì)算步長
x=a:h:b;
x(1)=1;
y=sqrt(x).*log(x); %定義函數(shù)y
z=sqrt(x+h/2).*log(x+h/2);
x(1)=0; %由于lnx會(huì)導(dǎo)致計(jì)算的瑕疵铅檩,故人工為瑕疵點(diǎn)賦值。計(jì)算得y1=0
t=0;
for k=1:(b-a)/h
t=t+y(k)+y(k+1)+4*z(k);%復(fù)合辛普森公式
end
t=t*h/6;
dy=t+4/9; %誤差
end
實(shí)驗(yàn)結(jié)果
(2)用龍貝格求積計(jì)算問題(1)
實(shí)驗(yàn)代碼
clear;clc;
a=0;b=1;
e=1e-4;
n=10; %算到R2才能用事后誤差估計(jì)
R=zeros(1,4);%矩陣維數(shù)可以動(dòng)態(tài)增加莽鸿,初始設(shè)為1行4列昧旨,R的第1~4列分別存儲(chǔ)T,S,C,R
R(1,1)=0;%人工為瑕疵點(diǎn)賦值
%求復(fù)合梯形公式拾给,最高對分到2^n次,夠算|R2n-Rn|<e兔沃,用事后誤差估計(jì)
for k=1:n-1%梯形值的遞推過程
h=(b-a)/2^k;
sum=0;
for i=1:2^(k-1)
sum=sum+f(a+(2*i-1)*h);
end
R(k+1,1)=R(k,1)/2+h*sum;
end
for j=1:3%加速值
fac=1/(4^j-1);
for k=1:n-j
R(k+j,j+1)=(1+fac)*R(k+j,j)-fac*R(k+j-1,j);
end
end
format long
format compact
%--------------------判斷精度---------------------
e1=abs(R(n,4)-R(n-1,4)),%輸出截?cái)嗾`差
if e1<e
I=R(n,4), %輸出積分近似值
break;
end
%--------------------判斷精度---------------------
實(shí)驗(yàn)結(jié)果
(3)用自適應(yīng)辛普森積分蒋得,使得精度達(dá)到10-4
實(shí)驗(yàn)代碼
function y=zishiyingsam(a,b,e)
h=(b-a)/2;
y0=sampusen(a,b,50); %自適應(yīng)辛普森仍與n有較大關(guān)系
y1=sampusen(a,a+h,50); %(a+b)/2
y2=sampusen(a+h,b,50);
if(abs(y2+y1-y0)>e)
y1=zishiyingsam(a,a+h,e/2);%遞歸過程
y2=zishiyingsam(a+h,b,e/2);
y=y1+y2;
else
y=y1+y2+(1/15)*(y1+y2-y0);
end
實(shí)驗(yàn)結(jié)果
相關(guān)文章:
數(shù)值分析之帶初值的常微分方程數(shù)值解法(二)