Maxima 對各種微積分的運算提供了強有力的支持。
可以這么說,在基本微積分運算能力上,Maxima 不輸給任何商業軟件。
### 求極限
求極限是微積分中最基本的運算。在Maxima 中用 limit 函數完成求極限的工作。
limit (expr, x, val)
?計算 x 趨近于 val 時 expr 的極限。
如果極限不存在,范圍值可能為 und (極限不存在),ind (極限不存在但是有界),infinity(發散)
limit (expr, x, val, dir)
計算 x 從 dir 方向趨近于 val 時 expr 的極限。
dir 為 plus 時求的是右極限,為 minus 時求的是左極限。
'limit(sin(x)/x,x,0);
limit(sin(x)/x,x,0);
'limit((1+1/x)^x,x,inf);
limit((1+1/x)^x,x,inf);

limit((2^(1/x)+1)/(2^(1/x)-1),x,0);
'limit((2^(1/x)+1)/(2^(1/x)-1),x,0,minus);
limit((2^(1/x)+1)/(2^(1/x)-1),x,0,minus);
'limit((2^(1/x)+1)/(2^(1/x)-1),x,0,plus);
limit((2^(1/x)+1)/(2^(1/x)-1),x,0,plus);

'limit((2*x^2+x)/(x^2-2),x,inf);
limit((2*x^2+x)/(x^2-2),x,inf);

### 微分運算
diff 函數可以實現微分運算,有四種基本形式,最基本的形式是:
diff (expr, x)? 求表達式 expr 對 x 的微分。
diff(sin(x)*x^3,x);

diff(u(x)*v(x),x);
diff(u(x)*v,x);

從上面的例子可以看到,一個函數如果不明確表明自變量,diff 函數是不會對其求導的。
diff (expr, x, n)
求表達式 expr 對 x 的 n 次微分。
diff(y^3*exp(-y^2),y,2);

diff (expr, x_1, n_1, …, x_m, n_m)? 求的是混合偏導數。
diff(f(x,y),x,2,y,1);

diff (expr) 計算的是全微分。
diff(f(x,y));

### taylor 級數展開
函數f(x)的在x = a附近的冪級數可以通過powerseries (f(x), x, a)獲得。
powerseries (f(x), x, a);
powerseries(1/(1-x^2), x, 0);

上面得到的結果中的求和指數 i2 看起來顯得不那么專業,可以用 niceindices 函數將其變的看起來更專業些。
niceindices(powerseries(1/(1-x^2), x, 0));

很多時候我們無法得到級數的解析表示,這時候可以用 taylor (f(x), x, a, n)得到函數f(x)在x = a附近第 n 階項((x - a)^n)以下各項的泰勒級數
taylor(sin(x), x, 0, 8);

同樣,對多元函數也可以進行 taylor 展開。
taylor (sin (y + x), x, 0, 3, y, 0, 3);

利用 pade 近似可以將 taylor 級數轉化為多項式函數。比如下面的例子
taylor(sin(x), x, 0, 8);
pade(%,5,5);

### 積分運算
integrate(expr, x)
計算不定積分。
integrate(expr, x, a, b)
計算定積分,積分上下限分別為 a b。
integrate(1/(1+x^2),x);
integrate(1/(1+x^2),x, minf, inf);

risch (expr, x)
采用 Risch 方法計算不定積分。
risch (x^2*erf(x), x),ratsimp;

changevar 函數利用變量替換,對待積分函數進行換元。這個功能對學習換元法求積分還是蠻有用的。
'integrate(x^2/(1+x^2),x,0,2);
changevar(%,x=tan(theta),theta,x);

### 求和與求積運算
sum (expr, i, i_0, i_1)
計算求和。
product (expr, i, i_0, i_1)
計算求積。
?
sum (i^2, i, 1, 7);
sum (a[i], i, 1, 7);
sum(1/k^2,k,0,inf);
sum (1/3^i, i, 1, inf), simpsum;

product (x + i*(i+1)/2, i, 1, 4);
product (a(i), i, 1, n);
product (k, k, 1, n), simpproduct;

### laplace 變換
Maxima 中提供了兩個函數用來計算 laplace 變換和反變換。
laplace (expr, t, s) 對表達式 expr 進行 laplace 變換,積分變量為 t,變換后的參數為 s.
ilt (expr, s, t) 對表達式進行反變換。
需要說明的是這兩個函數進行的都是單邊 laplace 變換,Maxima 中還沒有對雙邊拉式變換的支持。
?
laplace (exp (2*t + a) * sin(t) * t, t, s);
laplace ('diff (f (x), x), x, s);
ilt(1/(s+1),s,t);

提到 laplace 變換就不能不提提部分分式展開。
在大多數介紹 laplace 變換的初級課本中都只介紹利用部分分式展開的方式進行反變換。
Maxima 提供了 partfrac 函數來完成部分分式展開的工作。下面用一個例子來說明:
x/(x^3+4*x^2+5*x+2);
partfrac (x/(x^3+4*x^2+5*x+2), x);

- 前言
- gnuplot 中的數據平滑
- 利用 Maxima 求解常微分方程
- Maxima 的繪圖功能 1
- Maxima 的繪圖功能 2
- Maxima 的繪圖功能 3
- Maxima 矩陣及矢量運算 1
- Maxima 矩陣及矢量運算 3
- Maxima 矩陣及矢量運算 4
- maxima 學習筆記(coeff 函數的應用)
- maxima 代數表達式變換
- maxima 學習筆記(基本微積分)
- maxima 代數方程求解
- Maxima 中的復數運算
- Maxima 的三角函數化簡功能
- Maxima 的基本微積分操作
- 利用 gnuplot 繪制時間序列圖
- gnuplot 入門教程 1
- gnuplot 入門教程 2
- gnuplot 入門教程 3
- gnuplot 入門教程 4
- gnuplot 讀取逗號分隔的數據文件
- scilab 讀取處理 wav 文件
- scilab 讀取處理 wav 文件 (2)
- Scilab 處理聲音數據(補充)
- 利用 SCILAB 設計 FIR 濾波器(窗函數法)
- 利用 SCILAB 設計 FIR 濾波器(Minimax法)
- 利用 SCILAB 設計 iir 濾波器設計(模擬濾波器雙線性變換法)
- Scilab 的繪圖函數(1)
- Scilab 的繪圖函數(2)
- Scilab 的繪圖函數(3)
- Scilab 的繪圖函數(4)