MATLAB(四)在高等数学中的应用
MATLAB在高等數學中的應用
(一)求極限
matlab中求極限的命令為
limit(expr, x, a) limit(expr, a) limit(expr) limit(expr, x, a, 'left') limit(expr, x, a, 'right')其中,limit(expr, x, a)表示求符號表達式expr關于符號變量x趨近于a時的極限;limit(expr)表示求默認變量趨近于0時的極限。
關于left和right則表示左極限和右極限。
clc,clear; syms x b = limit(sqrt(1+x^2)-1)/(1-cos(x)) b = 0 clc,clear; syms x a b = limit((1+a/x)^x,x, inf) b = exp(a)(二)求導數
matlab的求導數命令為
diff(expr) diff(expr, v) diff(expr, sym('v')) diff(expr, n) diff(expr, v, n) diff(expr, n, v)其中:diff(expr)表示求表達式expr,關于默認變量的1階導數;diff(expr, v, n)和diff(expr, n, v)都表示求表達式expr關于符號變量v的n階導數。
clc, clear; syms y(x) y = log((x+2)/(1-x)); d3y = diff(y,3) d3y = simplify(d3y)%對符號函數進行化簡 pretty(d3y)%分數線居中顯示 d3y = (2*(1/(x - 1) - (x + 2)/(x - 1)^2)*(x - 1))/(x + 2)^3 - (2*(2/(x - 1)^2 - (2*(x + 2))/(x - 1)^3))/(x + 2) - (2*(1/(x - 1) - (x + 2)/(x - 1)^2))/(x + 2)^2 + (2*(2/(x - 1)^2 - (2*(x + 2))/(x - 1)^3)*(x - 1))/(x + 2)^2 + ((6/(x - 1)^3 - (6*(x + 2))/(x - 1)^4)*(x - 1))/(x + 2) d3y = -(18*(x^2 + x + 1))/(x^2 + x - 2)^32(x + x + 1) 18 - ---------------2 3(x + x - 2)(2)求向量a = [0 ?0.5 ?2 ?4]的一階向前差分。
clc, clear; a = [0 0.5 2 4]; da = diff(a) da =0.500000000000000 1.500000000000000 2.000000000000000(3)求矩陣b=的一階差分。
b = [1 2 3;9 8 7;4 5 6]; diff(b) ans =8 6 4-5 -3 -1關于矩陣元素的差分運算理解如下:
????顧名思義,就是在矩陣中,一行(一列)的元素與上一行(上一列)對應元素的差值,依次排列在上一行(上一列)元素對應所在位置。矩陣元素的差分分為行差分和列差分,第一行和第一列不做差分計算。
????上述的定義是定義一介差分計算,若進行多介矩陣元素的差分計算,僅需要進行迭代計算即可。
在matlab中差分運算的理解如下:
Y = diff(X) 對數組的第一維來計算相鄰 X的差值(要求長度不能為1)
?
- (1)如果 X 是一個 m長度的向量, 那么Y = diff(X) 返回一個 m-1長度的向量。 Y 的元素是相鄰 X的差值。Y = [X(2)-X(1) X(3)-X(2) ... X(m)-X(m-1)]。
- (2)如果X是一個非空,非向量的p*m 矩陣,那么Y = diff(X) 返回(p-1)*m的矩陣,矩陣的元素是X每一行元素間的差值。Y = [X(2,:)-X(1,:); X(3,:)-X(2,:); ... X(p,:)-X(p-1,:)](X(2,:)-X(1,:)代表第2行減第1行)。
- (3)如果X 是一個零矩陣, 那么Y = diff(X) 返回零矩陣。Y = diff(X,n) 通過迭代計算diff(X) n次來計算第n次的差值。事實上,這就意味著diff(X,2) 等價于diff(diff(X))。Y = diff(X,n,dim) 對 dim所指定的維來計算n次差值。 這個dim參數是一個正整數標量。
(三)求極值
求函數f(x) = x^3+6*x^2+8*x-1的極值點,并畫出函數的圖形。
解:對這類問題一般的求解方式為對f(x)求導,然后令導函數等于零,解方程則可求得函數f(x)的極值點。
clc,clear; syms x y = x^3+6*x^2+8*x-1; dy = diff(y); dy_zero = solve(dy) dy_zero_num = double(dy_zero)%變成數值類型 ezplot(y)%符號函數畫圖 dy_zero =- (2*3^(1/2))/3 - 2(2*3^(1/2))/3 - 2 dy_zero_num =-3.154700538379252-0.845299461620748(四)求積分
1.求不定積分
Matlab求符號函數不定積分的命令為
int(expr) int(expr, v)例:求不定積分?
?
?
clc,clear; syms x I = int(1/(1+sqrt(1-x^2))) pretty(I)結果為:
I = (x*asin(x) + (1 - x^2)^(1/2) - 1)/x2 x asin(x) + sqrt(1 - x ) - 1 ----------------------------x2.求定積分
1)求定積分的符號解
Matlab求fuha符號函數的定積分命令為
int(expr, a, b) int(expr, v, a, b)例:求定積分
clc,clear; syms x I = int(cos(x)*cos(2*x), -pi/2, pi/2)?
?
?
結果為:
I = 2/3?2)求定積分的數值解
例:求下列積分的數值解
(1)做變量替換x = 1/t,dx = -1/t^2dt, ? 得
clc, clear; I = quadl(@(t)(t-3*t.^2+2*t.^3).^(-1/3),eps,0.5)結果為
I =1.439615969001624(2)
clc, clear; I = dblquad(@(x,y)sqrt(1-x.^2-y.^2).*(x.^2+y.^2<=x), 0, 1, -0.5, 0.5)?結果為
I =0.602782455784300?(3)
clc, clear; fun3 = @(x,y,z)z.^2*log(x.^2+y.^2+z.^2+1)./(x.^2+y.^2+z.^2+1).*(z>=0&z<=sqrt(1-x.^2-y.^2)); I = triplequad(fun3, -1, 1, -1, 1, 0, 1)結果為
I =0.127302323127225?(五)級數求和
Matlab級數求和的命令為
r = symsum(expr, v) r = symsum(expr, v, a, b)?其中:expr為級數的tong通項表達式;v是求和變量;a和b分別為求和變量的起始點和終止點,若沒有zhim指明a和b,則a的默認值為0,b的默認值為v-1.
例:求如下級數的和
clc, clear; syms n f1 = (2*n-1)/2^n; s1 = symsum(f1, n, 1, inf)結果為
s1 = 3?
clc, clear; syms n f2 = 1/n^2; s2 = symsum(f2, n, 1, inf)結果為
s2 = pi^2/6?
?
?
總結
以上是生活随笔為你收集整理的MATLAB(四)在高等数学中的应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenCV学习(二十四 ):角点检测(
- 下一篇: PyMC3实现贝叶斯神经网络