function [i,n]=fuhe(f,a,b,eps)
if(nargin==3)
eps=1.0e-4;
endn=1;
h=(b-a)/2;
i1=0;
i2=(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b))*h;
while abs(i1-i2)>eps
n=n+1;
h=(b-a)/n;
i1=i2;
i2=0;
for i=0:n-1
x=a+h*i;
x1=x+h;
i2=i2+(subs(sym(f),findsym(sym(f)),x)+subs(sym(f),findsym(sym(f)),x1))*(h/2);
endend
% i=eval(i2);
i=i2;
n;%求解檔案指令碼**
[i,step]=fuhe('1/(x^2-1)',2,4,1.0e-4)
2)利用復合simpson公式計算定積分
%復化辛普森求解定積分函式
function [i,step]=isimpson(f,a,b,eps)
if(nargin==3)
eps=1.0e-4;
endn=1;
h=(b-a)/2;
i1=0;
i2=(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b))*h;
while abs(i1-i2)>eps
n=n+1;
h=(b-a)/n;
i1=i2;
i2=0;
for i=0:n-1
x=a+h*i;
x1=x+h;
i2=i2+(h/6)*(subs(sym(f),findsym(sym(f)),x)+4*subs(sym(f),findsym(sym(f)),(x+x1)/2)+subs(sym(f),findsym(sym(f)),x1));
endend
% i=eval(i2);
i=i2;
step=n
%求解指令碼檔案
[i,step]=isimpson('sin(x)',0,10,1.0e-4)
執行結果:
1)利用復合梯形公式計算定積分
i =0.2945
n =2)利用復合simpson公式計算定積分
i =1.8393
step =
C語言基礎 利用復合梯形求積公式計算定積分
這是數值分析中一種求解定積分的近似方法。適用於被積函式的原函式不能用初等函式表示的情況。將被積函式 f x 與x軸圍成的區域分成n個梯形,把n個梯形面積求和得到積分的近似值。若精度不滿足需要,則可以將每個區間再等分一次,得到2n 1個等分區間,然後再求和,直到精度滿足需要。ab f x dx h 2...
C語言復合梯形公式實現定積分
假設被積函式為 fx,積分區間為 ab,把區間 ab等分成 n個小區間,各個區間的長度為h,即 h ban 稱之為 步長 根據定積分的定義及幾 何意義,定積分就是求函式 fx在區間 ab中圖線下包圍的面積。將積分區間n 等分,各子區間的面積近似等於梯形的面積,面積的計算運用梯形公 式求解,再累加各區...
R 隨機模擬計算定積分
題目 分別用隨機投點法與平均值法計算定積分 分析 x h function x 被積函式h x data ggplot data,aes x,h x geom area fill green inte in va 給定積分區間 a,b h x 在該區間的最大值為c,隨機數個數為n f functio...