Matlab求解定積分/不定積分

一、符號積分
求符號積分函數:int

格式:int(f,x,a,b)

功能:計算定積分

格式:int(f,x)

功能:計算不定積分

使用int函數之前,先用syms聲明x是符號變量

例:

代碼:

 syms x
 y1=1/(1+x^4);
 y2=(x*exp(x))/(1+x)^2;
 y3=1/(x^2+2*x+3);
 fy1=int(y1)
 fy2=int(y2,0,1)
 fy3=int(y3,-inf,+inf)
二、數值積分
      在科學研究和工程技術中,經常遇到積分的計算,雖然有些函數的不定積分可以求出其初等函數表示式,但有更多的函數,它們的不定積分不是初等函數,這樣就無法利用牛頓萊布尼茲公式求出其定積分,甚至經常遇到只知道函數在一些離散點的值,但函數表達式未知的情況,在上述情況下就必須以數值方法求定積分的近似值。用數值方法求定積分的近似值,通常稱爲數值積分。

(1) 用梯形法計算積分;
適用於被積函數爲離散數據時,求函數的定積分。該函數調用格式:I=trapz(x,y)
例:


clc,clear
format long
ac=@(x)sin(x)./x
x1=pi/4:pi/50:pi/2;
y1=ac(x1);
s1=trapz(x1,y1)
x2=pi/4:pi/100:pi/2;
y2=ac(x2);
s2=trapz(x2,y2)
(2) 基於變步長辛普森法計算積分
該函數調用格式:[I,n]=quad(‘fname’,a,b,Tol,trace)
其中:‘fname是被積函數名
      a,b是積分上下限
      Tol是精度控制值,省卻時取0.001
      Trace:控制是否顯示展現積分過程,取0不展現
      I:積分值
      n:被積函數調用次數
例:


ac=@(x)sin(x)./x
s=quad(ac,pi/4,pi/2)

(3) 高精度Lobatto積分法
     格式:z = quadl(Fun,a,b)
(4) 自適應Gauss-Kronrod數值積分
       z = quadgk(Fun,a,b)
(5) 積分法矢量化自適應simpson數值積分
     格式:z = quadv(Fun,a,b)
      一次可以計算多個積分

   F=@(x,n)1./((1:n)+x.^2);
      quadv(@(x)F(x,6),0,1)
三、數值二重積分
 I=dblquad(f,a,b,c,d,tol,trace),求f(x,y)在[a,b]×[c,d]區域上的二重積分。
例:

計算二重積分:

其中

 f=@(x,y)exp(-x.^2/2).*sin(x.^2+y)
 I=dblquad(f,-2,2,-1,1)

————————————————
版權聲明:本文爲CSDN博主「鍵盤裏的青春」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_34374664/article/details/79186465

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章