maxima.docx
- 文档编号:6567165
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:15
- 大小:191.62KB
maxima.docx
《maxima.docx》由会员分享,可在线阅读,更多相关《maxima.docx(15页珍藏版)》请在冰豆网上搜索。
maxima
如何下載Maxima
1.進入
2.選擇該網頁左方功能選項 Download
這篇文章,是介紹Maxima這套數學軟體,在學習線性代數的應用。
Maxima是一個所謂的「電腦代數系統」(ComputerAlgebraSystem,CAS),這種系統比較為人熟知的還有Mathematica和Maple等等。
我們選定Maxima做為我們使用的程式,主要有三個原因:
1.免費Maxima是免費,又是各平台都有的。
所有的人可以在自己的
電腦上練習。
2.功能完整Maxima雖然不要錢,並不代表不好。
Maxima不論計算
或圖形功能都十分完整。
事實上,Maxima是最早的全功能CAS系統Macsyma的後代。
3.具代表性許多新的CAS系統,如Maple,Mathematica都多少受
到Macsyma的啟發。
所以學會Maxima,要學會Maple或Mathematica等軟體都是很容易的事。
如果同學們比較喜歡使用Mathematica,Maple,或是Matlab等商業軟體也是可以的。
我們系上的電腦室有提供這些軟體,可以上機試用看看。
看到這,你可能有個疑問,「如果Maxima這樣好,為什麼Maxima好像沒什麼名氣呢?
」很重要的原因是,自由軟體版的Maxima是到1998年才被授權的!
Macsyma原本是MIT一個實驗室發展的軟體,後來MIT決定要將這個軟體商業化。
這舉動正是讓RichardStallman決定要推動自由軟體的重要原因。
1982年,UniversityofTexas,Austin的教授WilliamSchelter決定自行開發Macsyma的自由版本,也就是這裡介紹的Maxima。
這個版本在有商業版Macsyma的情況,自然難以得到正式授權,因此只有少部份的人知道並使用Maxima。
Schelter教授就在這不知何時才能讓他的Maxima自由流傳的情況下,仍堅持他的理想,繼續Maxima的開發長達16年!
終於,1998年,Maxima才得到正式授權。
遺憾的是,Schelter教授在2001年突然過逝。
我們現在在Maxima的mailinglist,可以看到Schelter教授過逝之前,還在回答網友對Maxima的問題。
還好,Maxima已經是合法的自由軟體,所以有一批熱心的開發人員,繼續開發,推出更好的Maxima。
1.1Maxima當計算機
我們先來看,如果我們要把Maxima當計算機用,會是什麼情況?
(%i1)
1+1;
(%o1)
2
(%i2)
3*4*7;
(%o2)
84
(%i3)9/3;
(%o3)3
到目前為止,似乎還沒什麼特別。
除了可以做複雜一點點的運算,和平常的計算機或數值計算軟體也沒什麼不同。
以下的例子就不一樣了:
(%i4)7/3;
(%o4)
(%i5)1/2+2/3;
(%o5)
從運算我們看到,7/3這種運算,Maxima不是告訴我們2.3333...,而是分數的形式!
難道Maxima真的懂分數?
不要懷疑,這就是所謂電腦代數系統(CAS)的特長。
我們可以像下列的例子一樣,輸入個分數的四則運算試試即知。
如果堅持要用浮點數,那只要加個float指令即可:
(%i6)float(7/3);
(%o6)2.333333333333333
為了完整,我們順便再介紹指數,根號,階乘表示法:
(%i7)2^10;(%o7)1024
(%i8)sqrt(9);(%o8)3
(%i9)5!
;(%o9)120
我們可以看出,這些運算不是自然的數學符號,就是和我們平常電腦程式語言的寫法。
1.2指令結尾
在上面的例子中,我們發現,在Maxima下指令,結束時一定要打上分號「;」,讓Maxima知道我們下的指令已結束。
為什麼要多這一個動作,主要是為了有時打比較長的指令可以換行之故。
另一個結束方式是打入「$」的符號。
不同於分號的地方是「運算結果不會顯示出來」:
(%i10)2+3$(%i11)2+3;(%o11)5
有一些CAS程式,如Matehmatica是用分號表示不顯示運算結果。
不過Maxima中分號已用上,必需用其他字元。
1.3離開Maxima
離開Maxima打入“quit();”即可。
當然,很多人可能會覺得奇怪,為什麼不是打入“quit”就好了呢?
原來像這種程序導向的語言,什麼動作其實都是執行一個函數。
所以我們事實上是執行一個叫「離開」的函數。
這函數沒有引數,所以就成了quit()的形式。
1.4結果的引用
我們時常會需要引用前面的結果,這時就用百分比符號“%”。
比方說:
(%i12)7/3;
(%o12)
(%i13)float(%);(%o13)2.333333333333333
1.5重要常數
Maxima當然有內建e或是π常常用到的數,只是表示法奇怪一點。
e是%e而π是%pi。
例如:
(%i8)cos(%pi);
(%o8)-1
(%i9)log(%e);
(%o9)1
1.6指派,我在數學中常常會用的x=1或者y=1…等等,在這邊我們如何使用。
例如:
(%i1)x:
1;
(%o1)1
2.1介紹命令列
1.Operator:
'這個運算我們稱為quote
功能:
這個運算quote主要是暫停符號的運算,而在視窗上以符號
顯示。
2.Operator:
''這個運算我們稱為quote-quote
功能:
這個運算quote主要是把符號的運算。
例如:
(%i1)aa:
1024;
(%o1)1024
(%i2)aa^2;
(%o2)1048576
(%i3)'aa^2;
2
(%o3)aa
(%i4)''%;
(%o4)1048576
(%是指上一個的結果,所以我們可以看出上一個是aa經過,
quote-quote之後,就把符號求值出來)。
3.ev(expr,arg_1,...,arg_n):
只要是利用所給的arg求解expr
例如:
(%i1)sin(x)+cos(y)+(w+1)^2+'diff(sin(w),w);
(diff為數學微分指令,下章會說明)
(%o1)cos(y)+sin(x)+
(sin(w))+
4.解聯立方程式,使用solve指令。
(%i2)2*x-3*y=3;
(%o2)2x-3y=3
(%i3)-3*x+2*y=-4;
(%o3)2y-3x=-4
(%i4)solve([%o2,%o3]);
Solution
(%t4)y=-
(%t5)x=
3.1Arithmeticoperators
Arithmeticoperators算術算符
(1)Operator+
(2)Operator:
-
(3)Operator:
*
(4)Operator:
/
(5)Operator:
^
(6)Operator:
**
(1)Operator:
+
(%i10)c+g+d+a+b+e+f;
(%o10)g+f+e+d+c+b+a
(2)Operator:
-
(%i11)c-g-d-a-b-e-f;
(%o11)-g-f-e-d+c-b-a
(3)Operator:
*
(%i12)c*g*d*a*b*e*f;
(%o12)bcdefg
(4)Operator:
/
(%i1)a/b;
(%o1)
(5)Operator:
^
(%i2)a^b;
(%o2)
(6)Operator:
**
在maxima中**運符,等於^運符。
(%i1)x**y+x^z;
(%o1)
3.2關係運符
(1)Operator:
<小於
(2)Operator:
<=小於等於
(3)Operator:
>=大於等於
(4)Operator:
>大於
例如:
(%i2)[x,y,z]:
[123,456,789];
首先讓x=123,y=456,z=789
(%o2)[123,456,789]
(%i3)is(x 利用is指令請問x是否小於y (%o3)true代表x (%i4)is(x>y); (%o4)false代表x>y是為假的 3.3IntroductiontoExpressions (%i4)x: 3; (%o4)3將x令作為3 (%i5)(x: x+1,x: x^2);x先加1在平方 (%o5)16 3.4Strings(字串) (%i6)s_1: "Thisisastring."; (%o6)Thisisastring. 4.1FunctionsandVariablesforPlotting Function: contour_plot(expr,x_range,y_range,options,...) 主要功用是繪圖輪廓線,expr: 為你所要畫圖的式子,x_range: x範圍,y_range: y範圍。 (%i2)contour_plot(x^2+y^2,[x,-4,4],[y,-4,4]); (%o2) (%i4)contour_plot(sin(y)*cos(x)^2,[x,-4,4],[y,-4,4]); (%i5)F(x,y): =x^3+y^2; (%o5)F(x,y): = 令函數f(x,y)為 (%i6)contour_plot(F,[u,-4,4],[v,-4,4]); Function: plot2d(expr,x_range,...,options,...) 主要是畫圖2d。 (%i7)plot2d(sin(x),[x,-5,5]); 5.1函數定義 Maxima可以定義數學函數,函數運算子以: =來將變數與所定義函數連接起來,例如f(x): =5*x+3 這個定義為單變數函數,名稱為f,引數為x,而函數的定義為f(x)=5x+3 1.f(x): =5*x+5定義單變數函數f(x)=5x+5 2.f(x,y): =5*x*y+5定義多變數函數f(x,y)=5xy+5 (%i3)f(x): =5*x+5; (%o3)f(x): =5x+5 (%i4)f(3);當x=3會等於20 (%o4)20 我們可以用x代換為sin(x) (%i5)f(sin(x)); (%o5)5sin(x)+5 而且函數的引數不一定是一個數、一個函數,也可以是一個運算式 我們可以用x代換為a+b (%i6)f(a+b); (%o6)5(b+a)+5 (%i7)g(x,y): =sin(x)+cos(y); (%o7)g(x,y): =sin(x)+cos(y) (%i08)plot3d(g(x,y),[x,-%pi,%pi],[y,-%pi,%pi]); (%o09) 5.2函數的基本運算 1.f(x)+g(x) 2.f(x)-g(x) 3.f(x)*g(x) 4.f(x)/g(x) 以上是函數的四則運算 (%i1)f(x): =2*x+1; (%o1)f(x): =2x+1 (%i2)g(x): =5*x+1; (%o2)g(x): =5x+1 (%i3)f(x)+g(x); (%o3)7x+2 (%i4)f(x)-g(x); (%o4)-3x (%i5)f(x)*g(x); (%o5)(2x+1)(5x+1) (%i6)f(x)/g(x); (%o6) 5.3函數合成運算式子 1.f(g(x))以f合成g,產生合成函數f(g(x)) (%i1)f(x): =sin(x); (%o1)f(x): =sin(x) (%i2)g(x): =x-(%pi/2); (%o2)g(x): = (%i3)f(g(%pi)); (%o3)1 5.4基本的代數運算指令 代數表示式(algebraicexpression)係指包含有未知數的數學式,如 ,( ),等是屬於代數。 許多代數的基本運算大家應該有所了解,例如多項式的因式分解與展開 Maxima提供了expand與factor兩個指令來處理代數式的因數分解與展開運算。 1.expand(exp)將exp展開 2.factor(exp)將exp做因式分解 (%i2)expand((a+b)^2); (%o2) (%i3)expand((x^2+x-2)/(x^3+x-1)); (%o3) (%i4)expand((a+b)^2); (%o4) (%i5)factor(%); (%o5) (%i6)factor((x^2-2*x-15)/((x+3)*(x-7))); Factor會同時分解分子與分母,並會消去共同的因子 (%o6) 5.5代數式簡化 Maxima提供了簡化代數式的指令,ratsimp、trigsimp。 1.ratsimp指令是簡化有理數。 (%i1)ratsimp((x^2-1)/(x+1)); (%o1)x–1 2.trigsimp簡化三角方程式。 (%i2)trigsimp(2*cos(x)^2+sin(x)^2); (%o2) 5.6分式整理的常用函數 combine()和rncombine() 這兩個都是做分式整理的常用函數,其中rncombine()在使用前必須先載入rncomb 模組,載入模組語法為load(模組名): (%i1)a1: x/a+y/a+z/(2*a); (%o1) (%i2)combine(a1); (%o2) (%i3)load(rncomb)$ (%i4)rncombine(a1); (%i5) denom(expr)和num(expr) 這兩個函數分別可以取得分式的「分母」、「分子」。 (%i5)a2: (2*x+5)/z; (%o5) (%i6)denom(a2); (%o6)z (%i7)num(a2); (%o7)2x+5 5.6數學式子求值 給予一個表式式子y=f(x),如果想要求x=x0,f(x0)的值,當然你可以先把x0設給x,再納入f(x),便可以求值。 將x設為3; (%i1)x: 3; (%o1)3 (%i2)sqrt(x)+2*x^3; (%o2)sqrt(3)+54
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- maxima