Mathlab編程-微積分在Matlab中的解法


這一章節將介紹一系列典型的微積分問題(求極限、級數、定積分、導數、重積分等)在Matlab中的求解。

 

  首先關於極限:

  (1)    數列極限:

  給出下面三段例程。

 

  求解數列極限的limit函數參數說明:可以看到該函數可以有三個參數也可以有兩個參數,對於三個變量(比如說第二個例程),第一個參數是數列的通項,第二個參數是確認離散變量,因為在通項中有兩個字母a、n,第三個參數表示這個離散變量趨於某個范圍,這個函數將返回在離散變量趨於的那個范圍(第三個參數)時的極限。

 

  當然,借助Matlab自身強大的圖像功能,我們對於求解數列極限,我們還有一個可行的方法就是得到這個數列的散點圖,通過觀察這個數列趨近於一個怎樣的數,但是散點的數量要始終,而且得到的結果很可能不准確。

  那第一個例子來說:

>> n=1:50;

>> plot(n,n.^(1./n),'k.')   %  k.這里表示制自變量整數位置的散點圖

得到如下的大致圖像:

 

 

 

導數和微分在Matlab中的求解:

  對於最簡單的一階導數,基於之前我們介紹的極限在Matlab中的寫法,可根據定義直接求出導函數。

 

  定義法求導函數:

 

 

  diff函數直接求導函數:

 

 

基於定義法和左右導數的概念所編寫的DerivativeDefinition函數:

 

function df=DerivativeDefinition(fun,x,x0,type)
%DERIVATIVEDEFINITION   根據導數的定義求函數的導函數或在某點處導數值
% DF=DERIVATIVEDEFINITION(FUN,X)或
% DF=DERIVATIVEDEFINITION(FUN,X,[])  求函數FUN關於X的導函數
% DF=DERIVATIVEDEFINITION(FUN,X,X0)  求函數FUN在點X0處的導函數
% DF=DERIVATIVEDEFINITION(FUN,X,X0,TYPE)  根據TYPE指定導數類型求函數在點X0處的導數,
%                                                 TYPE有以下取值:
%                                                 1.'double'或0:雙側導數值,此為缺省值
%                                                 2.'left'或-1:左導數
%                                                 3.'right'或1:右導數
% DF=DERIVATIVEDEFINITION(FUN,X,[],TYPE)  根據TYPE指定導數類型求函數的導函數
%
% 輸入參數:
%     ---FUN:符號函數表達式
%     ---X:符號自變量
%     ---X0:求導點
%     ---TYPE:導數類型
% 輸出參數:
%     ---DF:返回的導函數或導數值
%
% See also limit, diff

if nargin<4
    type=0;
end
if nargin==2 || isempty(x0)
    x0=x;
end
syms h
delta_y=subs(fun,x,x0+h)-subs(fun,x,x0);
switch type
    case {0,'double'}
        df=limit(delta_y/h,h,0);  % 求導數
    case {-1,'left'}
        df=limit(delta_y/h,h,0,'left');  % 求左導數
    case {1,'right'}
        df=limit(delta_y/h,h,0,'right');  % 求右導數
    otherwise
        error('The Style of Derivative is Illegal.')
end

 

 

  結合一個實際問題對這段代碼進行應用。

 

                         

   

  根據結果可知該點導數並不存在。

  這里值得提的一點是,為了實現Matlab自定義函數功能,需要在Matlab編輯器中定義函數及其功能,然后在命令行窗口進行編程計算時直接調用即可。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM