首頁 > 其他

如何用matlab求帶絕對值函數的導數?

2019-12-25 19:52:03

       用matlab求函數的導數:如果一個函數表示式中有絕對值,那對該函數求導就需要注意啦!該函數可能在他的零點處導數不存在,所以我們不能用傳統的方法求導,應該在零點處分別求左導數和右導數,如果左導數和右導數存在並相等則該點的導數存在,否則該點導數不存在。

       下面我們就來說一下如何用matlab求帶絕對值函數的導數。


1

判斷函數的性質

    下面我們就以帶絕對值的正選函數f(x)=sin|x|為例來求導。先來判斷一下一下該函數的性質。我們先用matlab畫一下該函數的圖形,具體程式碼如下:

%畫出f(x)=sin|x|圖形

clear

x=-2*pi:pi/20:2*pi;

y=sin(abs(x));

plot(x,y,'r','LineWidth',1.5)

title('函數f(x)=sin|x|圖形'),xlabel('x'),ylabel('y')

    函數圖形為:


2

x≥0,有導數的定義求右導數

       當x≥0時,我們可以去掉函數中的絕對值,這時候函數f就變為:f(x)=sinx,這時候求右導數就簡單多了,不過還是得用定義發求右導數。具體程式碼以及計算結果請看下圖:


3

x≤0,由導數的定義求左導數

       同理,當x≤0時,去掉函數中的絕對值,f就變為:f(x)=sin(-x).。用定義發求左導數。具體程式碼以及計算結果請看下圖,有圖上的結果再結合上一部結論可以得出,f(x)在x=0點的導數不存在,而且在小於0的區間和大於0的區間導數不一致。


4

直接利用diff求導

matlab提供了一個直接求函數導數的指令diff,然而當函數含有絕對值時候是否還有效呢?我們來探索一下。有下圖中可以看出,當x=0時,函數的導數出現了錯誤的結果。


5

畫出圖形程式碼

    下面我們畫出函數f(x)、兩個區間分別的導數圖形。具體程式碼如下圖所示:


6

畫出的圖形如下圖所示:



IT145.com E-mail:sddin#qq.com