導數(shù)是微積分中的一個重要的概念,又稱為導函數(shù)值。在數(shù)學中,我們經常會利用導數(shù)來求切線、極值、拐點、漸近線等。在解決數(shù)學問題中,經常需要用到導數(shù)。MATLAB中提供了diff函數(shù)進行求導。本文對于MATLAB的求導操作進行簡單介紹。
1、求導的定義
求導是數(shù)學計算中的一個計算方法,它的定義就是,當自變量的增量趨于零時,因變量的增量與自變量的增量之商的極限。在一個函數(shù)存在導數(shù)時,稱這個函數(shù)可導或者可微分??蓪У暮瘮?shù)一定連續(xù)。不連續(xù)的函數(shù)一定不可導。本段定義來自百度百科(求導的定義)
2、diff函數(shù)
在MATLAB中提供了diff函數(shù)用于導數(shù)的求導,其中diff函數(shù)提供了四種調用方式。
(1)diff(y):這種調用方式沒有指明需要求導的自變量以及導數(shù)的階層數(shù)目,一般情況下,是對默認的變量進行一次的求導。
例如,在數(shù)學學習中,我們會知道一些比較常用的求導的公式有:
?下面利用MATLAB對其進行驗證:
syms x u a
y1=diff(x^u,x)
y2=diff(exp(x))
y3=diff(log(x))
y4=diff(sin(x))
y5=diff(cos(x))
y6=diff(a^x,x)
y7=diff(log(x)/log(a),x)
(注:因為在MALTAB中僅有以自然數(shù)e、2和10為底的對數(shù)公式,這里轉換為log(x)/log(a)的形式)。
運行結果如下所示:
y1 =
u*x^(u - 1)
y2 =
exp(x)
y3 =
1/x
y4 =
cos(x)
y5 =
-sin(x)
y6 =
a^x*log(a)
y7 =
1/(x*log(a))
通過使用MATLAB代碼對于上面的公式進行驗證,可以看出MATLAB所計算的結果與公式相同。
在學習導數(shù)的時候,我們會學習到導數(shù)的乘法與除法的運算法則。
其中導數(shù)的乘法運算法則如下所示:
?導數(shù)的除法的運算法則如下所示:
?下面利用MATLAB代碼對其進行驗證,例如下面這個式子對其進行求導操作:
利用MATLAB代碼對其進行驗證得:
syms x
y=x*exp(x);
diff(y)
運行結果如下所示:
ans =
exp(x) + x*exp(x)
可以看出結果符合乘法的運算法則。
下面對于除法的運算法則進行驗證:
syms x
y=exp(x)/x;
diff(y)
運行結果如下所示:
ans =
exp(x)/x - exp(x)/x^2
通過MATLAB所輸出的結果看出符合除法的運算法則。
下面我們可以對于tan(x)的導數(shù)進行驗證,tanx轉換為sinx/cosx的形式,利用除法的運算法則可以對其進行計算:
syms x
y=sin(x)/cos(x);
diff(y)
運行結果如下所示:
ans =
sin(x)^2/cos(x)^2 + 1
對于MATLAB所計算的結果進行驗證:
?而對tanx進行求導的結果如下所示:
?通過對比可以看出MATLAB所求結果正確。
(2)當符號表達式中涉及到了多變量時,diff函數(shù)可以指定對于特定符號變量進行求導,調用格式為diff(y,'x')。其中diff(y,'x'):假設需要對其進行求導的變量是x,因為沒有說明求導的階數(shù),這種情況下,MATLAB默認對其進行一階求導。
例如對于下面的公式進行求導:
?對下面的式子進行求導:
syms x a b c
y=a*x^3+b*x^2+x+c;
diff(y,'x')
運行結果如下所示:
ans =
3*a*x^2 + 2*b*x + 1
通過上面的例子可以看到,當存在多個符號變量的時候,diff函數(shù)可以指定特定的自變量對其進行求導。
(3)另外一種調用方式是指定特定的階數(shù),未說明對其求導的自變量,調用方式是diff(y,n),其中對于MATLAB指定的自變量求其n階導數(shù)。
例如同樣對下面的公式進行求導:
?MATLAB代碼如下所示:
syms x a b c
y=x^3+2*x^2+4*x+6;
diff(y,2)
運行結果如下所示:
ans =
6*x + 4
(4)最后一種調用方式是對其進行求導的自變量、求導的階數(shù)都進行說明,該方式的調用格式為diff(y,‘x’,n):該調用方式是以對于自變量x求其n階導數(shù)。
例如,對于下面的式子的x變量求其二階導數(shù):
?MATLAB代碼如下所示:
syms x
y=(x+1)*log(x)-x^2+x+1;
diff(y,'x',2)
運行結果如下所示:
ans =
2/x - (x + 1)/x^2 - 2
3、利用MATLAB對于復雜的公式求導
通過使用MATLAB對于一些復雜的公式進行求導,方便我們操作。下面對其較為困難的公式進行求導,下面舉幾個例子:
?MATLAB代碼如下所示:
syms x
y1=diff(sqrt(x)*sin(x),'x',1)
y2=diff(1/((3*x-1)^2),'x',1)
y3=diff(cos(sin(x)),'x',1)
運行結果如下所示:文章來源:http://www.zghlxwxcb.cn/news/detail-407202.html
y1 =
x^(1/2)*cos(x) + sin(x)/(2*x^(1/2))
y2 =
-6/(3*x - 1)^3
y3 =
-sin(sin(x))*cos(x)
通過運行的結果可以看出,在MATLAB中對于較復雜的符號表達式都可以進行求導操作。文章來源地址http://www.zghlxwxcb.cn/news/detail-407202.html
到了這里,關于利用MATLAB進行求導的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!