㈠ MATLAB 利用復合梯形公式求解積分
可以利用matlab的trapz函數命令
x=0:0.00001:1;%x用來儲存積分點
y=(x+1).*sin(x);%y用來求解積分點x處的函數值
I=trapz(x,y)
I =
0.7608663730793
驗證該問題的解析解
syms x
y=(x+1)*sin(x);%被積函數表達式
II=int(y,0,1)
II =
sin(1) - 2*cos(1) + 1 %II即為該被積函數的解析解
II_E=eval(II)
II_E =
0.760866373071617 %II的數值解
%可以看出梯形求積公式在步長等於0.00001的情況下,數值積分的解與解析解的數值能達到小數點後11位保持一致
㈡ 用復化梯形公式計算積分,使誤差小於0.0015
首先,你需提供已知的f(x)函數,再進行數值計算。
利用Matlab軟體,使用復化梯形公式計算數值積分的方法如下。
1、自定義復化梯形法函數,traint()
function y = traint(a,b,n,func)
h = (b - a) / n;
x = linspace(a,b,n+1);
y1 = h * feval(func,x);
y1(1) = y1(1) / 2
y1(n+1) = y1(n+1) / 2
y = sum(y1);
end
2、自定義已知的f(x)函數,func()
function y = func(x)
y=f(x) %要具體的函數表達式
end
3、在命令窗口中,輸入
a=1.8;b=2.6;n=10; %回車
traint(-1,0,8,f) %回車
㈢ matlab計算復化梯形求積數值解誤差分析,要畫圖,程序如下
這個是三維繪圖,構建x-y平面上的「格點」矩陣。即[X,Y]=meshgrid(xjny)你好像差了一個變數,就是變數z,變數z是和變數X,Y有關的,也就是說它是(X,Y)的函數5173之後才能做出來三維圖形只有兩個變數只能做出二維圖形!
㈣ 使用復化梯形公式計算積分,問應至少將區間 等分為多少份,才能使截斷誤差
於無法求得exp(x^2)的原函數,我們只能用數值演算法來求解,可以用復化梯形公式、Romberg公式、Gauss公式等,有好多種。我用Matlab編了一個用Gauss公式求解積分的函數。functionS=GaussIntegrate()%運用Gauss求積公式計算數值積分%f為被積函數,Rho為權函數,二者均為符號函數x=sym('x');f=exp(x^2);Rho=1;%a,b分別為求積區間的左界和右界a=1;b=2;%n表示求積結點的個數,是一正整數n=8;%本程序利用線性變換將區間[a,b]變換到[-1.1],%同時令g=f*Rho為被積函數,然後利用%古典的Gauss求積公式進行計算,此時直交多項式即為Legendre多項式ifn=0||n~=floor(n)error('錯誤,n必須是一個非負整數!');end;ifa>berror('錯誤,區間的左界a一定不大於右界b!');end;%計算n次Legendre多項式symsx;P=1/(2^n*factorial(n))*diff((x^2-1)^n,n);w=roots(sym2poly(P));%計算數值積分A=zeros(1,n);S=0;fork=1:nA(k)=2/((1-w(k)^2)*(subs(diff(P),w(k))^2));t=a+(b-a)/2*(w(k)+1);g=(b-a)/2*subs(f*Rho,t);S=S+A(k)*g;end;--------------------------------我取了8個結點,計算精度就已經達到了小數點後8位,效率還是很高的。注意:由於Matlab調用Maple的符號計算工具箱,第一次運行時會載入一小會,耐心等待。以後再運行速度就很快了。
㈤ 求復化梯形法計算定積分 c++程序代碼
sin(0)/0 =limit (sinx/x,x->0)=1
sin(1)/1=sin(1)
其餘的就簡單了吧!只是梯形面積公式和求和而已。
㈥ 分別用不同步長的復合梯形公式計算下列定積分: 要求: 分別用步長 h= 0.5;0.1;0.05;0.01;0.005畫出函數
數值計算,步數越短越精確嘍
不難,就是麻煩
㈦ 基於matlab的變步長復化梯形積分公式
functionT=myInt3(f,a,b,e)
h=b-a;
T1=h*(f(a)+f(b))/2;
T2=T1/2+h/2*f(a+h/2);
n=2;
whileabs(T2-T1)>=e
T1=T2;
S=0;
forj=0:n-1
x=a+(2*j+1)*(b-a)/(2*n);
S=S+f(x);
end
T2=T1/2+S*(b-a)/(2*n);
n=n*2;
end
T=T2;
測試如下:
對函數3*x^2+4*sin(x)在區間[-2,2]上積分
>> f=@(x)(3*x^2+4*sin(x)');
>> myInt3(f,-2,2,1e-4)
ans =
16.0000
㈧ 復化梯形求積
1.復化梯形求積公式
圖7-1 復化梯形求積示意圖
如圖7-1所示,已知f(x)在區間[a,b]上等距的n+1個節點a=x0<x1<x2<…<xn=b的觀測值f0,f1,f2,…,fn,相鄰點距為h,以相鄰節點為端點,將區間[a,b]劃分為n個子區間[xi-1,xi](i=1,2,…,n)。在各個子區間[xi-1,xi](i=1,2,…,n)上,我們用一階的Lagrange插值函數L1(x)來近似代替f(x),根據線性函數的積分公式容易求得在子區間[xi-1,xi]上的數值積分值Ti就是一個梯形面積,即 將各個子區間的積分相加,即可得到f(x)在[a,b]的近似積分值Tn,即
地球物理數據處理基礎
式(7-4)即為復化梯形積分公式,其幾何意義是用L1(x)與x軸所夾的n塊小梯形面積代替f(x)與x軸所夾的面積。
2.求積余項估計
對於子區間[xi-1,xi]的復化梯形積分,其截斷誤差或求積余項相當於式(6-28)中取n=1的情況,即
地球物理數據處理基礎
由於ξ∈(xi-1,xi)與積分變數x相關,故不能簡單積出,應用積分中值定理將f″(ξ)從積分中提出,並且注意(x-xi)(x-xi-1)≤0,於是有
地球物理數據處理基礎
為了方便求出上面的積分,作變數代換x=xi-1+th,則
地球物理數據處理基礎
注意,上式成立的條件是f(x)∈C2[a,b]。
那麼,在區間[a,b]上進行復化梯形積分產生的截斷誤差或求積余項為
地球物理數據處理基礎
式中 是不便估計的,但是,應用連續性中值定理,能找到xm和xM,使f″(xm)最小和f″(xM)最大,且各f″(ηi)(i=1,2,…,n)的平均值 滿足
地球物理數據處理基礎
因此,必存在一點η∈(xm,xM)∈[a,b],使得 那麼就稱f″(η)為f″(ηi)的中值,從而有
地球物理數據處理基礎
亦即R[f,Tn]隨n的增大(或h的減小)呈平方關系減小,因而具有平方收斂性,記R[f,Tn]=O(h2)。
3.代數精度
對於復化梯形積分公式來說,由式(7-6)可知,若f(x)僅為不超過一次的多項式時,f″(η)=0,R[f,Tn]=0,即∫baf(x)dx=Tn精確成立,所以Tn的代數精度為1。
4.數值穩定性
設δi=|fi-f(xi)|(i=0,1,2,…,n), 則Tn的舍入誤差
地球物理數據處理基礎
即E不隨所求節點個數的增加而變化,故Tn的數值穩定性良好。
㈨ mathematica中如何使用復合梯形求積公式
使用Integrate或者NIntegrate函數
mathematica有詳細的幫助說明文檔, 直接在文檔中尋找就可以了.
具體實現方法要看演算法的實現思路
㈩ 復合梯形公式f(xk)怎麼求
復合梯形公式f(xk)求:根據復合梯形公式,可以求得∫1到3 f(x)dx近似值為18/5。
用復合梯形公式去近似一個劇烈震盪的函數,如果步長不能足夠小,誤差就不能有效的控制在要求范圍內。回憶課本中的誤差的估計公式,可以發現有一項是f''(s)(f在某點s的二階導數)。如果f是一個劇烈震盪的函數,那麼f''(s)有可能會非常大,從而增大誤差。
復化求積公式
(composite integration rule )是一類重要的求積公式。指將求積區間分為m個子區間,對每個子區間應用同一求積公式,所得到的復合數值積分公式。在每個子區間上用低階的求積公式,然後將所有子區間上的計算結果加起來,這樣得出的公式稱為復化求積公式。