MATLAB積分方法

2021-05-23 06:51:13 字數 2612 閱讀 6225

一 相關函式

%符號積分

int(f,v)

int(f,v,a,b)

%數值積分

trapz(x,y)%梯形法沿列方向求函式y關於自變數x的積分

cumtrapz(x,y)%梯形法沿列方向求函式y關於自變數x的累計積分

quad(fun,a,b,tol)%採用遞推自適應simpson法計算積分

quad1(fun,a,b,tol)%採用遞推自適應lobatto法求數值積分

dbquad(fun,xmin,xmax,ymin,ymax,zmin,zmax,tol)%二重(閉型)數值積分指令

triplequad(fun,xmin,xmax,ymin,ymax,zmin,zmax,tol)%三重(閉型)數值積分指令

二.示例:

例1:計算f(t)=exp(-t^2)在[0,1]上的定積分

本例演示:計算定積分常用方法

>>symsx

int(exp(-x^2),0,1)

ans=

1/2*erf(1)*pi^(1/2) %erf為誤差函式

>>vpa(int(exp(-x^2),0,1))

ans=

.7468241328124270

>>d=0.001;x=0:d:1;d*trapz(exp(-x.^2))

ans=

0.7468

>>quad('exp(-x.^2)',0,1,1e-8)

ans=

0.7468例2:計算f(t)=1/log(t)在[0,x],0注意:被積函式於x=0無義,在x-->1^-處為負無窮

本例演示:用特殊函式表示的積分結果,如何用mfun指令

(1)symstx

ft=1/log(t);

sx=int(ft,t,0,x) 

sx=-ei(1,-log(x)) %完全橢圓函式(2)

x=0.5:0.1:0.9

sx_n=-mfun('ei',1,-log(x))       

x=0.5000  0.6000  0.7000  0.8000  0.9000

sx_n=

-0.3787 -0.5469 -0.7809 -1.1340 -1.7758(3)%圖示被函式和積分函式

clf

ezplot('1/log(t)',[0.1,0.9])      

gridon

holdon

plot(x,sx_n,'linewidth',3)        

char1='1/ln(t)';

char2='1/ln(t)dt';    

title([char1,' and  ',char2])  

legend(char1,char2,'location','southwest')例3:計算f(t)=exp(-sin(t))在[0,4]上的定積分

注意:本題被函式之原函式無"封閉解析表示式",符號計算無法解題!

本例演示:符號計算有限性

(1)符號計算解法

symstx

ft=exp(-sin(t))

sx=int(ft,t,0,4) 

ft=exp(-sin(t))

warning:explicitintegralcouldnotbefound.

>insym.intat58

sx=int(exp(-sin(t)),t=0..4)(2)數值計算解法

dt=0.05;          %取樣間隔      

t=0:dt:4;           %數值計算適合於有限區間上,取有限個取樣點       

ft=exp(-sin(t));    

sx=dt*cumtrapz(ft);      %計算區間內曲線下圖形面積,為小矩形面積累加得

sx(end)        %所求定積分值

%圖示plot(t,ft,'*r','markersize',4)

holdon

plot(t,sx,'.k','markersize',15)

holdoff

xlabel('x')

legend('ft','sx')

>>ans=

3.0632例4:繪製積分圖形,y=2/3*exp(-t/2)*cos(sqrt(3)/2*t);積分s(x)=int(y,t,0,x)於[0,4*pi]上

symsttao

y=2/3*exp(-t/2)*cos(sqrt(3)/2*t);  

s=subs(int(y,t,0,tao),tao,t);  %獲得積分函式      

subplot(2,1,1)              

%ezplot(y,[0,4*pi]),ylim([-0.2,0.7]) %單變數符號函式視覺化,多變數用ezsurf

gridon                  

subplot(2,1,2)              

ezplot(s,[0,4*pi])

gridon

title('s=inty(t)dt')

Matlab 積分微分

函式 函式功能 trapz y 梯形法求定積分 cumsum y 矩形法求定積分 y quad fun,a,b,e 求被積函式fun在 a,b 上的定積分,誤差為e,預設為e 6。演算法是變步長演算法 y quadl fun,a,b,e 與quad類似,但是速度,精度更高 q dblquad fun...

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 其...