Maxima(計(jì)算機(jī)代數(shù)系統(tǒng))
詳情介紹
函數(shù)、公式推導(dǎo)等都都是非常繁瑣的事情,隨著計(jì)算機(jī)技術(shù)的發(fā)展,很多比較繁雜是公式、實(shí)驗(yàn)、推導(dǎo)等都可以借助計(jì)算機(jī),今天小編就給各位推薦一款功能非常強(qiáng)大的數(shù)學(xué)函數(shù)推導(dǎo)分析軟件——Maxima,Maxima軟件是一款采用LISP編寫計(jì)算機(jī)代數(shù)系統(tǒng)可以幫助你在電腦上分析函數(shù)的工具,Maxima軟件是美國一家公司開發(fā)的,其前身是MIT的Macsyma,在最初的運(yùn)算中,主要用于計(jì)算代數(shù),因此您也可以將其看作是一個(gè)計(jì)算機(jī)代數(shù)運(yùn)算系統(tǒng),經(jīng)過多年的發(fā)展,該軟件的功能已經(jīng)非常強(qiáng)大了,并不僅僅是運(yùn)算那么簡單;Maxima現(xiàn)在已經(jīng)廣泛運(yùn)用于高級(jí)函數(shù)分析,支持初等函數(shù)、代數(shù)、常量、變量、矩陣、微分、積分、等方面的分析,讓數(shù)學(xué)研究方面的朋友可以獲得一個(gè)更加智能的計(jì)算工具,同時(shí)該軟件在繪制函數(shù)圖像方面的功能也是非常先進(jìn)的,支持二維作圖、數(shù)據(jù)作圖,需要的朋友可以下載試試!
Maxima是全功能的計(jì)算機(jī)代數(shù)系統(tǒng)(CAS)。CAS是一個(gè)程序,可以通過重新排列公式并找到解決問題的公式來解決數(shù)學(xué)問題,而不僅僅是輸出結(jié)果的數(shù)值。換句話說,Maxima 可以作為一個(gè)計(jì)算器,給出變量的數(shù)值表示,也可以提供分析解決方案。此外,它還提供了一系列不能解析解的等式或方程組的數(shù)值分析方法。
2、waxMaxima
wxMaxima是一個(gè)圖形用戶界面,提供Maxima的全部功能和靈活性。 wxMaxima為用戶提供了圖形顯示和許多功能,使Maxima更容易使用。例如,wxMaxima允許一個(gè)簡單的右鍵點(diǎn)擊導(dǎo)出任何單元格的內(nèi)容(或者,如果需要,公式的任何部分)作為文本,LaTeX或MathML規(guī)范。事實(shí)上,整個(gè)工作簿可以導(dǎo)出為HTML文件或LaTeX文件。wxMaxima的文檔,包括用于說明其使用方面的工作簿,可以在wxMaxima 幫助站點(diǎn)以及幫助菜單中進(jìn)行在線。
3、水平和垂直光標(biāo)
有時(shí)希望允許選擇多個(gè)單元格或只允許單元格的一部分用于導(dǎo)出或拖放。然而,在一個(gè)單元格的中間開始這樣的一個(gè)動(dòng)作并將其結(jié)束在另一個(gè)單元格的中間幾乎肯定會(huì)導(dǎo)致意想不到的結(jié)果。因此,在這種情況下,waxMaxima將把選擇擴(kuò)展到完整的單元格。
wxMaxima通過定義兩種類型的游標(biāo)來提供拖放的靈活性。wxMaxima將在需要時(shí)自動(dòng)切換:
-能夠選擇任意數(shù)量的全部單元格的水平光標(biāo)。通過在兩個(gè)單元格之間移動(dòng)光標(biāo)或單擊兩個(gè)單元格之間的空格來激活該光標(biāo)。要選擇一組相鄰單元格,請單擊頂部單元格左側(cè)(但不在三角形內(nèi))的括號(hào)中,然后拖動(dòng)光標(biāo),以便突出顯示該單元格和下一單元格(或單元格范圍)。然后使用ctrl + enter 或shift + enter來執(zhí)行突出顯示的單元格。
-在單元格內(nèi)工作的垂直光標(biāo)。通過使用鼠標(biāo)指針或光標(biāo)鍵移動(dòng)單元格內(nèi)的光標(biāo)來激活該光標(biāo),并且在文本編輯器中與光標(biāo)非常相似。
只要光標(biāo)在單元格內(nèi)部,搜索操作將會(huì)將其范圍限制在當(dāng)前單元格中。
4、命令自動(dòng)完成
wxMaxima包含通過菜單(單元格/完成字)觸發(fā)的自動(dòng)完成功能,或者通過按下組合鍵Ctrl + k。自動(dòng)完成是上下文相關(guān)的,如果在ezUnits的單位規(guī)范內(nèi)激活,它將提供適用單位的列表。除了完成當(dāng)前命令或變量的名稱之外,自動(dòng)完成能夠顯示大多數(shù)命令的模板,指示該程序期望的參數(shù)的類型(和含義)。要激活此功能,請按Shift + Ctrl + k或選擇相應(yīng)的菜單項(xiàng)(單元格/顯示模板),下圖中的樣式需要下載TeXmacs。
5、內(nèi)含MAXIMA的教程
在圖形界面的wxmaxima中選擇幫助,可以直接查看官網(wǎng)或查看下載包里教程文件夾,雙擊.wxm后綴的文件則直接在MAXIMA中打開,注意,它們都是英文的。
Maxima調(diào)用外 部程序來實(shí)現(xiàn) 作圖,默認(rèn) 的外部程序是Gnuplot。Gnuplot是一個(gè) 很強(qiáng)大的基于 命令行的函數(shù)及數(shù) 據(jù)作圖程序 ,集成了計(jì)算 、擬合、腳 本編程等功能 ,包括Maxima,Octave等在 內(nèi)的一些軟件均使用Gnuplot作為 后臺(tái)程序?qū)崿F(xiàn)作 圖功能。對于那 些經(jīng)常用到數(shù)學(xué) 作圖的用戶, 我建議直接使用Gnuplot,因?yàn)樗懈`活的設(shè)置和更強(qiáng)大的功能。
特殊函數(shù)
Maxima提供有 常用的特殊函數(shù) 。這里不介紹每 個(gè)函數(shù)的具體 用法,可以參考 任何一本數(shù)理 方程教材
邊值問題
函數(shù)bc2(solution,xval_1,yval_1,xval_2,yval_2)用來 求解二 階微分方 程的邊 值問題 ,其中solution是ode2解得 的通 解,xval_1、yval_1xval_2和yval_2分別 為自 變量和 因變 量在第 一點(diǎn)和第二點(diǎn)的取值
一階或二階常微分方程通解
(eqn, dvar, ivar)函數(shù)用來解一階或者二階常 微分方程,其中eqn是待解方程,dvar是因變量,ivar是自變量。
對角矩陣
對于具 有相 同元 素的 對角 矩陣 ,還 有更 簡便的 輸入 方法 。diagmatrix (n, x)函數(shù)返 回一 個(gè)對 角元素 為x的n × n對 角矩 陣。單 位矩 陣 可以 用diagmatrix (n, 1)表 示 。另 外, 單位 矩 陣還 可以 通過ident (n)獲得
交互式輸入
使用entermatrix(m,n)函數(shù)可以 進(jìn)行交互式的矩陣 輸入,Maxima將每 個(gè)元素一一讀入。 如果行列維數(shù)相同,Maxima會(huì)主動(dòng)詢問 矩陣是否為對 角、對稱、反對 稱或者一般矩 陣,這樣可以 有效減少輸入次數(shù)
你可以把Maxima當(dāng)作一個(gè)快速的并且可靠的計(jì)算器用。它的精度在計(jì)算機(jī)硬件的限度內(nèi)可以是任意的。跟很多編程語言一樣,在Maxima,你需要輸入一個(gè)或者多個(gè)指令和表達(dá)式,并以分號(hào)"$$"分隔。
(%i1) 9+7;
(%o1) 16
(%i2) -17*19;
(%o2) -323
(%i3) 10/2;
(%o3) 5
上一次計(jì)算的結(jié)果可以用“%”符號(hào)來表示,而且之前的任意一次的輸入和輸出可以通過符號(hào) “%i”(輸出)或者“%o”(輸出)來表示。
(%i4) % - 10;
(%o4) -5
(%i5) %o1 * 3;
(%o5) 48
簡單一點(diǎn),從這里起,我們將會(huì)省略掉那些標(biāo)有號(hào)碼的輸入和輸出,并且用 a => sign 來表示輸出。分?jǐn)?shù)情況下,分子和分母都是整數(shù)的情況下,maxima會(huì)返回一個(gè)相應(yīng)的簡化的分?jǐn)?shù)或者一個(gè)整數(shù)。這些可以通過一些使用“float”方法來驗(yàn)證(或者bfloat,在大的浮點(diǎn)數(shù)字的情況下):
8/2;
=> 4
8/2.0;
=> 4.0
2/6;
=> displaystyle frac{1}{3}
float(1/3);
=> 0.33333333333333
1/3.0;
=> 0.33333333333333
26/4;
=> displaystyle frac{13}{2}
float(26/4);
=> 6.5
如上所述,在這里,大數(shù)值的數(shù)字不是個(gè)問題:
13^26;
=> 91733330193268616658399616009
13.0^26
=> displaystyle 9.1733330193268623text{ }10^_{+28}
30!;
=> 265252859812191058636308480000000
float((7/3)^35);
=> displaystyle 7.5715969098311943text{ }10^_{+12}
一些定量和常見的方程
這里是一些常見的定量數(shù)值,在日常使用中會(huì)經(jīng)常用到:
%e - Euler’s Number
%pi - displaystyle pi
%phi - the golden mean (displaystyle frac{1+sqrt{5}}{2})
%i - the imaginary unit (displaystyle sqrt{-1})
inf - real positive infinity (infty)
minf - real minus infinity (-infty)
infinity - complex infinity
我們可以用它們中的一些在一些常見的方程里:
sin(%pi/2) + cos(%pi/3);
=> displaystyle frac{3}{2}
tan(%pi/3) * cot(%pi/3);
=> 1
float(sec(%pi/3) + csc(%pi/3));
=> 3.154700538379252
sqrt(81);
=> 9
log(%e);
=> 1
2、聲明定義方程和變量
變量可以用一個(gè)冒號(hào)來賦值,而方程需要用":="來定義。以下的程序是用來演示怎么去使用它們:
a:7; b:8;
=> 7
=> 8
sqrt(a^2+b^2);
=> sqrt{113}
f(x):= x^2 -x + 1;
=> x^2 -x + 1
f(3);
=> 7
f(a);
=> 43
f(b);
=> 57
請注意,Maxima只提供自然對數(shù)計(jì)算功能 log. 默認(rèn)情況下,不提供 log10,但是你可以自己定義,如下:
log10(x):= log(x)/log(10);
=> displaystyle log10(x):=frac{log(x)}{log(10)};
log10(10)
=> 1
3、符號(hào)計(jì)算方法
我們可以使用 factor 來進(jìn)行因數(shù)分解:
factor(30!);
=> displaystyle 2^{26},3^{14},5^7,7^4,11^2,13^2,17,19,23,29
或者多項(xiàng)式的因子計(jì)算
factor(x^2 + x -6);
=> (x-2)(x+3)
然后,展開
expand((x+3)^4);
=> displaystyle x^4+12,x^3+54,x^2+108,x+81
簡化有理數(shù)表達(dá)式:
ratsimp((x^2-1)/(x+1));
=> x-1
簡化三角方程:
trigsimp(2*cos(x)^2 + sin(x)^2);
=> displaystyle cos ^2x+1
類似的,展開三角表達(dá)方程:
trigexpand(sin(2*x)+cos(2*x));
=> displaystyle -sin ^2x+2,cos x,sin x+cos ^2x
請注意,2x在Maxima中不是乘法表達(dá)式,相應(yīng)的,它要求明確使用 2*x。如果你想使用TeX來生成相應(yīng)的表達(dá)式,你可以使用方程tex:
tex(%);
=> $$-sin ^2x+2,cos x,sin x+cos ^2x$$
4、公式求解
我們可以用方程“solve”輕松的解一個(gè),或者一組公式:
solve(x^2-4,x);
=> displaystyle left[ x=-2 , x=2 right]
%[2]
=> x=2
solve(x^3=1,x);
=> displaystyle left[ x={{sqrt{3},i-1}over{2}} , x=-{{sqrt{3},i+1}over{2}} , x=1 right]
trigsimp(solve([cos(x)^2-x=2-sin(x)^2], [x]));
=> displaystyle left[ x=-1 right]
solve([x - 2*y = 14, x + 3*y = 9],[x,y]);
=> left[ left[ x=12 , y=-1 right] right]
5、二維和三維畫圖
Maxima提供了二維和三維畫圖功能,并且有更多的功能在同一個(gè)圖表里。"plot2d"和"plot3d"用起來非常直接。第二個(gè)(或者第三個(gè),在使用plot3d的時(shí)候)參數(shù)就是一系列x(和y)的數(shù)值,用來定義畫圖的取值范圍。
plot2d(x^2-x+3,[x,-10,10]);
plot2d([x^2, x^3, x^4 -x +1] ,[x,-10,10]);
f(x,y):= sin(x) + cos(y);
plot3d(f(x,y), [x,-5,5], [y,-5,5]);
6、極限
limit((1+1/x)^x,x,inf);
=> %e
limit(sin(x)/x,x,0);
=> 1
limit(2*(x^2-4)/(x-2),x,2);
=> 8
limit(log(x),x,0,plus);
=> -infty
limit(sqrt(-x)/x,x,0,minus);
=> -infty
7、微分
diff(sin(x), x);
=> displaystyle cos(x)
diff(x^x, x);
=> displaystyle x^{x},left(log x+1right)
我們能使用一個(gè)任選的數(shù)字來定義微分計(jì)算的階數(shù),從而來計(jì)算更高階的微分方程:
diff(tan(x), x, 4);
=> displaystyle 8,sec ^2x,tan ^3x+16,sec ^4x,tan x
8、積分
Maxima提供了一些類型的幾分計(jì)算。當(dāng)計(jì)算不定積分時(shí)候:
integrate(1/x, x);
=> displaystyle log(x)
定積分的情況下,只需要把后兩個(gè)參數(shù)定義成積分的范圍:
integrate(x+2/(x -3), x, 0,1);
=> displaystyle -2,log 3+2,log 2+{{1}over{2}}
integrate(%e^(-x^2),x,minf,inf);
=> sqrt{% pi}
如果方程integrate不能計(jì)算一個(gè)積分的時(shí)候,你可以運(yùn)行數(shù)值計(jì)算,用一個(gè)合適的方程(例如:romberg):
romberg(cos(sin(x+1)), x, 0, 1);
=> 0.57591750059682
9、累加和累乘
sum 和 product 是用于計(jì)算累加和累乘的方法。當(dāng)需要簡化結(jié)果的時(shí)候,可以使用simpsum選項(xiàng)。注意,你也可以用product來定義你自己的方程。
sum(k, k, 1, n);
=> displaystyle sum_{k=1}^{n}{k}
sum(k, k, 1, n), simpsum;
=> displaystyle {{n^2+n}over{2}}
sum(1/k^4, k, 1, inf), simpsum;
=> displaystyle {{%pi^{4}}over{90}}
fact(n):=product(k, k, 1, n);
=> fact(n):=product(k,k,1,n)
fact(10);
=> 3628800
10、展開級(jí)數(shù)
級(jí)數(shù)展開可以通過方法taylor來進(jìn)行(最后一個(gè)參數(shù)用于定義展開深度),或者用powerseries:
niceindices(powerseries(%e^x, x, 0));
=> displaystyle sum_{i=0}^{infty }{{{x^{i}}over{i!}}}
taylor(%e^x, x, 0, 5);
=> displaystyle 1+x+{{x^2}over{2}}+{{x^3}over{6}}+{{x^4}over{24}}+{{x^5}over{120 }}+cdots
當(dāng)taylor的輸出需要用圖形表示的時(shí)候,trunc方法和plot2d一起使用(去解決泰勒級(jí)數(shù)尾部輸出的+cdots符號(hào)問題):
plot2d([trunc(%), %e^x], [x,-5,5]);
官方介紹
Maxima 的前身是DOE-Macsyma 。DOE-Macsyma 是由麻省理工學(xué)院(MIT)在美國能源部的支持下于60年代末創(chuàng)造的一中 CAS ,它是用 LISP 實(shí)現(xiàn)的。Macsyma在當(dāng)時(shí)是非常創(chuàng)新的軟件。現(xiàn)在流行的商業(yè)計(jì)算機(jī)代數(shù)系統(tǒng)軟件Maple及Mathematica,都是受到Macsyma的啟發(fā)而設(shè)計(jì)出來的。MIT 1982年的時(shí)候決定把 Macsyma 變成一個(gè)關(guān)閉源碼的程序,Macsyma 走上商業(yè)化的道路,于是產(chǎn)生了很多 Macsyma 的分支。自1982年開始,Bill Schelter教授默默地開始開發(fā)一個(gè)開放源碼版的Macsyma,他把這個(gè)軟件叫做Maxima。因?yàn)榘鏅?quán)的問題,Maxima一直不能公開發(fā)行,只有少數(shù)人知道有這個(gè)軟件的存在。1998年,Maxima終于得到公開發(fā)行的許可,這已是Schelter教授努力了16年之后的事。Schelter教授在2001年去世,不過已經(jīng)正式成為合法開放源碼軟件,因此陸續(xù)有支持開放源碼的程序設(shè)計(jì)師,學(xué)者投入Maxima的開發(fā)工作。Maxima原本是純文字界面,這在數(shù)學(xué)式子的顯示上就沒有Maple或Mathematica等軟件來得美觀。不過Maxima也有幾種圖形界面。第一個(gè)選擇是使用GNU的TeXmacs。TeXmacs是一套所見即所得的文書處理程序,可以很方便的編輯數(shù)學(xué)式子。它同時(shí)也提供許多數(shù)學(xué)軟件一個(gè)美觀的界面,Maxima就是其中之一。其他可能的選擇還有wxMaxima, imaxima等等。軟件功能
1、最大值Maxima是全功能的計(jì)算機(jī)代數(shù)系統(tǒng)(CAS)。CAS是一個(gè)程序,可以通過重新排列公式并找到解決問題的公式來解決數(shù)學(xué)問題,而不僅僅是輸出結(jié)果的數(shù)值。換句話說,Maxima 可以作為一個(gè)計(jì)算器,給出變量的數(shù)值表示,也可以提供分析解決方案。此外,它還提供了一系列不能解析解的等式或方程組的數(shù)值分析方法。
2、waxMaxima
wxMaxima是一個(gè)圖形用戶界面,提供Maxima的全部功能和靈活性。 wxMaxima為用戶提供了圖形顯示和許多功能,使Maxima更容易使用。例如,wxMaxima允許一個(gè)簡單的右鍵點(diǎn)擊導(dǎo)出任何單元格的內(nèi)容(或者,如果需要,公式的任何部分)作為文本,LaTeX或MathML規(guī)范。事實(shí)上,整個(gè)工作簿可以導(dǎo)出為HTML文件或LaTeX文件。wxMaxima的文檔,包括用于說明其使用方面的工作簿,可以在wxMaxima 幫助站點(diǎn)以及幫助菜單中進(jìn)行在線。
3、水平和垂直光標(biāo)
有時(shí)希望允許選擇多個(gè)單元格或只允許單元格的一部分用于導(dǎo)出或拖放。然而,在一個(gè)單元格的中間開始這樣的一個(gè)動(dòng)作并將其結(jié)束在另一個(gè)單元格的中間幾乎肯定會(huì)導(dǎo)致意想不到的結(jié)果。因此,在這種情況下,waxMaxima將把選擇擴(kuò)展到完整的單元格。
wxMaxima通過定義兩種類型的游標(biāo)來提供拖放的靈活性。wxMaxima將在需要時(shí)自動(dòng)切換:
-能夠選擇任意數(shù)量的全部單元格的水平光標(biāo)。通過在兩個(gè)單元格之間移動(dòng)光標(biāo)或單擊兩個(gè)單元格之間的空格來激活該光標(biāo)。要選擇一組相鄰單元格,請單擊頂部單元格左側(cè)(但不在三角形內(nèi))的括號(hào)中,然后拖動(dòng)光標(biāo),以便突出顯示該單元格和下一單元格(或單元格范圍)。然后使用ctrl + enter 或shift + enter來執(zhí)行突出顯示的單元格。
-在單元格內(nèi)工作的垂直光標(biāo)。通過使用鼠標(biāo)指針或光標(biāo)鍵移動(dòng)單元格內(nèi)的光標(biāo)來激活該光標(biāo),并且在文本編輯器中與光標(biāo)非常相似。
只要光標(biāo)在單元格內(nèi)部,搜索操作將會(huì)將其范圍限制在當(dāng)前單元格中。
4、命令自動(dòng)完成
wxMaxima包含通過菜單(單元格/完成字)觸發(fā)的自動(dòng)完成功能,或者通過按下組合鍵Ctrl + k。自動(dòng)完成是上下文相關(guān)的,如果在ezUnits的單位規(guī)范內(nèi)激活,它將提供適用單位的列表。除了完成當(dāng)前命令或變量的名稱之外,自動(dòng)完成能夠顯示大多數(shù)命令的模板,指示該程序期望的參數(shù)的類型(和含義)。要激活此功能,請按Shift + Ctrl + k或選擇相應(yīng)的菜單項(xiàng)(單元格/顯示模板),下圖中的樣式需要下載TeXmacs。
5、內(nèi)含MAXIMA的教程
在圖形界面的wxmaxima中選擇幫助,可以直接查看官網(wǎng)或查看下載包里教程文件夾,雙擊.wxm后綴的文件則直接在MAXIMA中打開,注意,它們都是英文的。
軟件特色
作圖Maxima調(diào)用外 部程序來實(shí)現(xiàn) 作圖,默認(rèn) 的外部程序是Gnuplot。Gnuplot是一個(gè) 很強(qiáng)大的基于 命令行的函數(shù)及數(shù) 據(jù)作圖程序 ,集成了計(jì)算 、擬合、腳 本編程等功能 ,包括Maxima,Octave等在 內(nèi)的一些軟件均使用Gnuplot作為 后臺(tái)程序?qū)崿F(xiàn)作 圖功能。對于那 些經(jīng)常用到數(shù)學(xué) 作圖的用戶, 我建議直接使用Gnuplot,因?yàn)樗懈`活的設(shè)置和更強(qiáng)大的功能。
特殊函數(shù)
Maxima提供有 常用的特殊函數(shù) 。這里不介紹每 個(gè)函數(shù)的具體 用法,可以參考 任何一本數(shù)理 方程教材
邊值問題
函數(shù)bc2(solution,xval_1,yval_1,xval_2,yval_2)用來 求解二 階微分方 程的邊 值問題 ,其中solution是ode2解得 的通 解,xval_1、yval_1xval_2和yval_2分別 為自 變量和 因變 量在第 一點(diǎn)和第二點(diǎn)的取值
一階或二階常微分方程通解
(eqn, dvar, ivar)函數(shù)用來解一階或者二階常 微分方程,其中eqn是待解方程,dvar是因變量,ivar是自變量。
對角矩陣
對于具 有相 同元 素的 對角 矩陣 ,還 有更 簡便的 輸入 方法 。diagmatrix (n, x)函數(shù)返 回一 個(gè)對 角元素 為x的n × n對 角矩 陣。單 位矩 陣 可以 用diagmatrix (n, 1)表 示 。另 外, 單位 矩 陣還 可以 通過ident (n)獲得
交互式輸入
使用entermatrix(m,n)函數(shù)可以 進(jìn)行交互式的矩陣 輸入,Maxima將每 個(gè)元素一一讀入。 如果行列維數(shù)相同,Maxima會(huì)主動(dòng)詢問 矩陣是否為對 角、對稱、反對 稱或者一般矩 陣,這樣可以 有效減少輸入次數(shù)
使用教程
1、把Maxima當(dāng)做計(jì)算器用你可以把Maxima當(dāng)作一個(gè)快速的并且可靠的計(jì)算器用。它的精度在計(jì)算機(jī)硬件的限度內(nèi)可以是任意的。跟很多編程語言一樣,在Maxima,你需要輸入一個(gè)或者多個(gè)指令和表達(dá)式,并以分號(hào)"$$"分隔。
(%i1) 9+7;
(%o1) 16
(%i2) -17*19;
(%o2) -323
(%i3) 10/2;
(%o3) 5
上一次計(jì)算的結(jié)果可以用“%”符號(hào)來表示,而且之前的任意一次的輸入和輸出可以通過符號(hào) “%i”(輸出)或者“%o”(輸出)來表示。
(%i4) % - 10;
(%o4) -5
(%i5) %o1 * 3;
(%o5) 48
簡單一點(diǎn),從這里起,我們將會(huì)省略掉那些標(biāo)有號(hào)碼的輸入和輸出,并且用 a => sign 來表示輸出。分?jǐn)?shù)情況下,分子和分母都是整數(shù)的情況下,maxima會(huì)返回一個(gè)相應(yīng)的簡化的分?jǐn)?shù)或者一個(gè)整數(shù)。這些可以通過一些使用“float”方法來驗(yàn)證(或者bfloat,在大的浮點(diǎn)數(shù)字的情況下):
8/2;
=> 4
8/2.0;
=> 4.0
2/6;
=> displaystyle frac{1}{3}
float(1/3);
=> 0.33333333333333
1/3.0;
=> 0.33333333333333
26/4;
=> displaystyle frac{13}{2}
float(26/4);
=> 6.5
如上所述,在這里,大數(shù)值的數(shù)字不是個(gè)問題:
13^26;
=> 91733330193268616658399616009
13.0^26
=> displaystyle 9.1733330193268623text{ }10^_{+28}
30!;
=> 265252859812191058636308480000000
float((7/3)^35);
=> displaystyle 7.5715969098311943text{ }10^_{+12}
一些定量和常見的方程
這里是一些常見的定量數(shù)值,在日常使用中會(huì)經(jīng)常用到:
%e - Euler’s Number
%pi - displaystyle pi
%phi - the golden mean (displaystyle frac{1+sqrt{5}}{2})
%i - the imaginary unit (displaystyle sqrt{-1})
inf - real positive infinity (infty)
minf - real minus infinity (-infty)
infinity - complex infinity
我們可以用它們中的一些在一些常見的方程里:
sin(%pi/2) + cos(%pi/3);
=> displaystyle frac{3}{2}
tan(%pi/3) * cot(%pi/3);
=> 1
float(sec(%pi/3) + csc(%pi/3));
=> 3.154700538379252
sqrt(81);
=> 9
log(%e);
=> 1
2、聲明定義方程和變量
變量可以用一個(gè)冒號(hào)來賦值,而方程需要用":="來定義。以下的程序是用來演示怎么去使用它們:
a:7; b:8;
=> 7
=> 8
sqrt(a^2+b^2);
=> sqrt{113}
f(x):= x^2 -x + 1;
=> x^2 -x + 1
f(3);
=> 7
f(a);
=> 43
f(b);
=> 57
請注意,Maxima只提供自然對數(shù)計(jì)算功能 log. 默認(rèn)情況下,不提供 log10,但是你可以自己定義,如下:
log10(x):= log(x)/log(10);
=> displaystyle log10(x):=frac{log(x)}{log(10)};
log10(10)
=> 1
3、符號(hào)計(jì)算方法
我們可以使用 factor 來進(jìn)行因數(shù)分解:
factor(30!);
=> displaystyle 2^{26},3^{14},5^7,7^4,11^2,13^2,17,19,23,29
或者多項(xiàng)式的因子計(jì)算
factor(x^2 + x -6);
=> (x-2)(x+3)
然后,展開
expand((x+3)^4);
=> displaystyle x^4+12,x^3+54,x^2+108,x+81
簡化有理數(shù)表達(dá)式:
ratsimp((x^2-1)/(x+1));
=> x-1
簡化三角方程:
trigsimp(2*cos(x)^2 + sin(x)^2);
=> displaystyle cos ^2x+1
類似的,展開三角表達(dá)方程:
trigexpand(sin(2*x)+cos(2*x));
=> displaystyle -sin ^2x+2,cos x,sin x+cos ^2x
請注意,2x在Maxima中不是乘法表達(dá)式,相應(yīng)的,它要求明確使用 2*x。如果你想使用TeX來生成相應(yīng)的表達(dá)式,你可以使用方程tex:
tex(%);
=> $$-sin ^2x+2,cos x,sin x+cos ^2x$$
4、公式求解
我們可以用方程“solve”輕松的解一個(gè),或者一組公式:
solve(x^2-4,x);
=> displaystyle left[ x=-2 , x=2 right]
%[2]
=> x=2
solve(x^3=1,x);
=> displaystyle left[ x={{sqrt{3},i-1}over{2}} , x=-{{sqrt{3},i+1}over{2}} , x=1 right]
trigsimp(solve([cos(x)^2-x=2-sin(x)^2], [x]));
=> displaystyle left[ x=-1 right]
solve([x - 2*y = 14, x + 3*y = 9],[x,y]);
=> left[ left[ x=12 , y=-1 right] right]
5、二維和三維畫圖
Maxima提供了二維和三維畫圖功能,并且有更多的功能在同一個(gè)圖表里。"plot2d"和"plot3d"用起來非常直接。第二個(gè)(或者第三個(gè),在使用plot3d的時(shí)候)參數(shù)就是一系列x(和y)的數(shù)值,用來定義畫圖的取值范圍。
plot2d(x^2-x+3,[x,-10,10]);
plot2d([x^2, x^3, x^4 -x +1] ,[x,-10,10]);
f(x,y):= sin(x) + cos(y);
plot3d(f(x,y), [x,-5,5], [y,-5,5]);
6、極限
limit((1+1/x)^x,x,inf);
=> %e
limit(sin(x)/x,x,0);
=> 1
limit(2*(x^2-4)/(x-2),x,2);
=> 8
limit(log(x),x,0,plus);
=> -infty
limit(sqrt(-x)/x,x,0,minus);
=> -infty
7、微分
diff(sin(x), x);
=> displaystyle cos(x)
diff(x^x, x);
=> displaystyle x^{x},left(log x+1right)
我們能使用一個(gè)任選的數(shù)字來定義微分計(jì)算的階數(shù),從而來計(jì)算更高階的微分方程:
diff(tan(x), x, 4);
=> displaystyle 8,sec ^2x,tan ^3x+16,sec ^4x,tan x
8、積分
Maxima提供了一些類型的幾分計(jì)算。當(dāng)計(jì)算不定積分時(shí)候:
integrate(1/x, x);
=> displaystyle log(x)
定積分的情況下,只需要把后兩個(gè)參數(shù)定義成積分的范圍:
integrate(x+2/(x -3), x, 0,1);
=> displaystyle -2,log 3+2,log 2+{{1}over{2}}
integrate(%e^(-x^2),x,minf,inf);
=> sqrt{% pi}
如果方程integrate不能計(jì)算一個(gè)積分的時(shí)候,你可以運(yùn)行數(shù)值計(jì)算,用一個(gè)合適的方程(例如:romberg):
romberg(cos(sin(x+1)), x, 0, 1);
=> 0.57591750059682
9、累加和累乘
sum 和 product 是用于計(jì)算累加和累乘的方法。當(dāng)需要簡化結(jié)果的時(shí)候,可以使用simpsum選項(xiàng)。注意,你也可以用product來定義你自己的方程。
sum(k, k, 1, n);
=> displaystyle sum_{k=1}^{n}{k}
sum(k, k, 1, n), simpsum;
=> displaystyle {{n^2+n}over{2}}
sum(1/k^4, k, 1, inf), simpsum;
=> displaystyle {{%pi^{4}}over{90}}
fact(n):=product(k, k, 1, n);
=> fact(n):=product(k,k,1,n)
fact(10);
=> 3628800
10、展開級(jí)數(shù)
級(jí)數(shù)展開可以通過方法taylor來進(jìn)行(最后一個(gè)參數(shù)用于定義展開深度),或者用powerseries:
niceindices(powerseries(%e^x, x, 0));
=> displaystyle sum_{i=0}^{infty }{{{x^{i}}over{i!}}}
taylor(%e^x, x, 0, 5);
=> displaystyle 1+x+{{x^2}over{2}}+{{x^3}over{6}}+{{x^4}over{24}}+{{x^5}over{120 }}+cdots
當(dāng)taylor的輸出需要用圖形表示的時(shí)候,trunc方法和plot2d一起使用(去解決泰勒級(jí)數(shù)尾部輸出的+cdots符號(hào)問題):
plot2d([trunc(%), %e^x], [x,-5,5]);
下載地址
- 電腦版
Maxima(計(jì)算機(jī)代數(shù)系統(tǒng)) v5.47.0
- 本地下載通道:
- 浙江電信下載
- 北京聯(lián)通下載
- 江蘇電信下載
- 廣東電信下載
同類軟件
網(wǎng)友評論
共0條評論(您的評論需要經(jīng)過審核才能顯示)