對於積分:
只要找到被積公式的原函式f(x),利用牛頓萊普利茲公式有:
但是,實際使用這種求積分的方法往往是有困難的,因為大量的被積函式的原函式是不能用初等函式表示的;另外,當f(x)是由測量或數值計算給出的一張資料表時,牛頓萊普利茲公式也無法直接運用,因此有必要研究積分的數值計算問題。
對於一些理論的推導,大家可以看看維基百科,下面我主要給出牛頓-科特斯公式在n=1(梯形求積公式)、n=2(辛普森公式)的情況,並通過**實現。
梯形公式:
辛普森公式:
應用高階牛頓-科特斯公式計算積分時,會出現數值不穩定的情況,而低階公式往往因為積分步長過大使得離散誤差變大,因此,為了提高求積公式的精度,可以把積分區間分成若干個子區間,在每個子區間上使用低階求積公式,然後將結果加起來,這種方法稱為復化求積法。
復化梯形公式:
復化辛普森公式:
根據復化梯形公式的推導,同理可得復化辛普森公式為:
下面我們通過例項來實現復化梯形公式和復化辛普森公式:
對於函式f(x)=sin(x)/x,試用復化梯形公式和復化辛普森公式計算函式f(x)在[0,1]上的積分。
具體的程式實現如下:
#include#includedouble function(double x)//所要計算積分的函式f(x)
//復化梯形公式
double trapz(double a,double b,int n)
{ double h=(b-a)/n;
double t=0;
for(int i=1;i執行結果如下圖:
結果分析:
比較復化梯形公式和復化辛普森公式兩種方法的執行結果,我們發現復化辛普森公式與準確值0.9460831更加接近,復化梯形公式只有2位有效數字,而復化辛普森公式有6為有效數字。
參考部落格:
數值分析 復化積分公式
對於積分 只要找到被積公式的原函式f x 利用牛頓萊普利茲公式有 但是,實際使用這種求積分的方法往往是有困難的,因為大量的被積函式的原函式是不能用初等函式表示的 另外,當f x 是由測量或數值計算給出的一張資料表時,牛頓萊普利茲公式也無法直接運用,因此有必要研究積分的數值計算問題。對於一些理論的推導...
復變函式視覺化 復積分
復變函式的積分 z0 z1f z dz f z z int f z dz sum f delta z delta z z0 z1 f z dz f z z每一小段的復數值 乙個向量 乘以中間的某個值 積分法則 仿真實變函式積分 常數可以提出來 積分可以分段積分留數 用積分計算泰勒展開的係數 積分與路...
復化梯形公式求二重積分matlab原始碼
這段 具有很好的互動性和通用性,將 複製到matlab編輯器之後,按照提示操作即可。傻瓜式操作,結果一目了然 2020.6.5 復化梯形公式求二重積分 liu deping clear all 被積函式及積分上下限匯入 s input 請輸入函式表示式 f s f inline s a input ...