Matlab微積分
MATLAB提供瞭解決微分和積分微積分的各種方法,求解任何程度的微分方程和極限計算。可以輕鬆繪製複雜功能的圖形,並通過求解原始功能以及其衍生來檢查圖形上的最大值,最小值和其他固定點。
本章將介紹微積分問題。在本章中,將討論預演算法,即計算功能限制和驗證限制屬性。
在下一章微分中,將計表達式的導數,並找到一個圖的局部最大值和最小值。我們還將討論求解微分方程。
最後,在「整合/集成」一章中,我們將討論積分微積分。
計算極限
MATLAB提供計算極限的limit
函數。在其最基本的形式中,limit
函數將表達式作爲參數,並在獨立變量爲零時找到表達式的極限。
例如,要計算函數f(x)=(x^3 + 5)/(x^4 + 7)
的極限,因爲x
趨向於零。
syms x
limit((x^3 + 5)/(x^4 + 7))
執行上面示例代碼,得到以下結果 -
Trial>> syms x
limit((x^3 + 5)/(x^4 + 7))
ans =
5/7
limit
函數落在符號計算域; 需要使用syms
函數來告訴MATLAB正在使用的符號變量。還可以計算函數的極限,因爲變量趨向於除零之外的某個數字。要計算 -
可使用帶有參數的limit
命令。第一個是表達式,第二個是數字 - x
表示接近,這裏它是a
。
例如,要計算函數f(x)=(x-3)/(x-1)
的極限,因爲x
傾向於1
。
limit((x - 3)/(x-1),1)
執行上面示例代碼,得到以下結果 -
ans =
NaN
下面再看另外一個例子,
limit(x^2 + 5, 3)
執行上面示例代碼,得到以下結果 -
ans =
14
使用Octave計算極限
以下是Octave版本的上述示例使用symbolic
包,嘗試執行並比較結果 -
pkg load symbolic
symbols
x=sym("x");
subs((x^3+5)/(x^4+7),x,0)
執行上面示例代碼,得到以下結果 -
ans =
0.7142857142857142857
驗證極限的基本屬性
代數極限定理提供了極限的一些基本屬性。這些屬性如下 -
下面來考慮兩個函數 -
f(x) = (3x + 5)/(x - 3)
g(x) = x^2 + 1.
下面計算函數的極限,這兩個函數的x
趨向於5
,並使用這兩個函數和MATLAB驗證極限的基本屬性。
例子
創建腳本文件並在其中鍵入以下代碼 -
syms x
f = (3*x + 5)/(x-3);
g = x^2 + 1;
l1 = limit(f, 4)
l2 = limit (g, 4)
lAdd = limit(f + g, 4)
lSub = limit(f - g, 4)
lMult = limit(f*g, 4)
lDiv = limit (f/g, 4)
執行上面示例代碼,得到以下結果 -
l1 =
17
l2 =
17
lAdd =
34
lSub =
0
lMult =
289
lDiv =
1
使用Octave驗證極限的基本屬性
以下是Octave
版本的上述示例使用symbolic
包,嘗試執行並比較結果 -
pkg load symbolic
symbols
x = sym("x");
f = (3*x + 5)/(x-3);
g = x^2 + 1;
l1=subs(f, x, 4)
l2 = subs (g, x, 4)
lAdd = subs (f+g, x, 4)
lSub = subs (f-g, x, 4)
lMult = subs (f*g, x, 4)
lDiv = subs (f/g, x, 4)
執行上面示例代碼,得到以下結果 -
l1 =
17.0
l2 =
17.0
lAdd =
34.0
lSub =
0.0
lMult =
289.0
lDiv =
1.0
左右邊界極限
當函數對變量的某個特定值具有不連續性時,該點不存在極限。 換句話說,當x = a
時,函數f(x)
的極限具有不連續性,當x
的值從左側接近x
時,x
的值不等於x
從右側接近的極限值。
對於x <a
的值,左極限被定義爲x - > a
的極限,從左側即x
接近a
。 對於x> a
的值,右極限被定義爲x - > a
的極限,從右邊,即x
接近a
。 當左極限和右極限不相等時,極限不存在。
下面來看看一個函數 -
f(x) = (x - 3)/|x - 3|
下面將顯示 不存在。MATLAB幫助我們以兩種方式說明事實 -
- 通過繪製函數圖並顯示不連續性。
- 通過計算極限並顯示兩者都不同。
通過將字符串「left」
和「right」
作爲最後一個參數傳遞給limit
命令來計算左側和右側的極限。
例子
創建腳本文件並在其中鍵入以下代碼 -
f = (x - 3)/abs(x-3);
ezplot(f,[-1,5])
l = limit(f,x,3,'left')
r = limit(f,x,3,'right')
執行上面示例代碼,得到以下結果 -
顯示以下輸出結果 -
Trial>>
Trial>> f = (x - 3)/abs(x-3);
ezplot(f,[-1,5])
l = limit(f,x,3,'left')
r = limit(f,x,3,'right')
l =
-1
r =
1