數值微分與數值積分

2021-10-09 01:27:04 字數 2890 閱讀 6737

注意:diff函式計算的是向量元素間的差分,故差分向量元素的個數比原向量少了

乙個。同樣,對於矩陣來說,差分後的矩陣比原矩陣少了一行或一列。

另外,計算差分之後,可以用f(x)在某點處的差商作為其導數的近似值。

matlab提供了求向前差分的函式diff,其呼叫格式有三種:

 dx=diff(x):計算向量x的向前差分,dx(i)

=x(i+1)-x(i),i=1,2,…,n-1。  dx=diff(x,n):計算向量x的n階向前差分。例如,diff(x,2)

=diff(diff(x))。  dx=diff(a,n,dim):計算矩陣a的n階差分,dim=1時(預設狀態),按列計算

差分;dim=2,按行計算差分。

 基於自適應辛普森方法 

[i,n]

=quad(filename,a,b,tol,trace)

 基於自適應gauss-lobatto方法

[i,n]

=quadl(filename,a,b,tol,trace)

其中,filename是被積函式名;a和b分別是定積分的下限和上限,積分限[a,b]

必須是有限的,不能為無窮大(inf);tol用來控制積分精度,預設時取

tol=10-6;trace控制是否展現積分過程,若取非0則展現積分過程,取0則不展

現,預設時取trace=0;返回引數i即定積分的值,n為被積函式的呼叫次數。

 基於全域性自適應積分方法 i=

integral

(filename,a,b)

其中,i是計算得到的積分;filename是被積函式;a和b分別是定積分的下限和

上限,積分限可以為無窮大。

>

> f=@(x)1./

(x.*

sqrt(1

-log

(x).^2

));>

>i=

integral

(f,1

,exp(1

))i=

1.5708

 基於自適應高斯-克朗羅德方法 [i

,err]

=quadgk

(filename,a,b)

其中,err返回近似誤差範圍,其他引數的含義和用法與quad函式相同。積分

上下限可以是無窮大(−inf或inf),也可以是複數。如果積分上下限是複數,

則quadgk函式在復平面上求積分。

例5 設x=1:6,y=[6,8,11,7,5,2],用trapz函式計算定積分。

x=1:6;

y=[6,8,11,7,5,2];

plot(x,y,』-ko』);

grid on

axis([1,6,0,11]);

i1=trapz(x,y)

i1 =

35

i2=sum(diff(x).*(y(1:end-1)+y(2:end))/2)

i2 =

35

 求二重積分的數值解i=

integral2

(filename,a,b,c,d)i=

quad2d

(filename,a,b,c,d)i=

dblquad

(filename,a,b,c,d,tol)

 求三重積分的數值解:i=

integral3

(filename,a,b,c,d,e,f)i=

triplequad

(filename,a,b,c,d,e,f,tol)

>

> f1=@(x,y)

exp(

-x.^2/

2).*

sin(x.^2

+y);

>

>i1=

quad2d

(f1,-2

,2,-

1,1)

i1=1.574

>

> f2=@(x,y,z)

4*x.

*z.*

exp(

-z.*z.

*y-x.

*x);

>

>i2=

integral3

(f2,

0,pi,

0,pi,0,

1)i2=

1.7328

數值分析實驗 二 之數值積分與微分

1 用復化梯形公式的自動控制誤差演算法求積分。2 romberg積分演算法求積分。復化梯形公式 sy2 1.m檔案 myint 0,1,100 fun1.m檔案 function f fun1 x if x 0 x 1 f 1 else f sin x x endmyint,m檔案 function...

Matlab數值積分

function gc,ak,xk guasschebyshev fun,n 高斯 勒讓德數值積分 引數說明 fun 積分表示式,可以是函式控制代碼 inline函式 匿名函式 字串表示式,但是必須可以接受向量輸入 a,b 積分上下限只能 1 1 故忽略 n 積分階數,可以任意正整數,但是不建議設定...

matlab 數值積分!

1.梯形格式 2.其他格式 matlab提供了quad quadl 等函式命令計算一元函式的數值積分,其中quad 採用遍歷的自適應simpson法計算函式的數值積分,quadl採用遍歷的自適應lobatto法計算函式的數值積分。其呼叫格式一般為 q,fcnt quad function,a,b 其...