solve是Maxima最基本的求解函數,舉凡求多項次的解,解聯立方程式,都可以使用solve來求解。簡單的東西不用說的太複雜,現在我們就用幾個實例來說明solve的使用時機。
1:解二元一次方程式
本例中,只有一個變數x,使用solve可以不指定第二個參數solve(%,x),但習慣上還是建議加上去,沒必要省這種工夫。
本例有兩個變數x和y,所以一定要指定第二個參數。
3.解聯立方程式
Solve:
說明:
第一行的看起來好像只有(%i1),事實上第一行包含兩個Input(%i1和%i2),還記得前面說過,每一行的輸入是以; (分號)做為結束嗎,所以(%i1)只到 為止,而下一段的 則是屬於(%i2),所以(%i2)是存在的,同學可以試著輸入%i2,看看結果。
此外,還要再說明一點,每個Input一定會對應一個Output,以%i1來說,它對應的就是%o1,所以你也可以從Output得知有幾個Input。
另外我們再複習一下變數的指定,的意思是說,我們把賦給了f1變數,同學可以輸入f1看看會有什麼結果,而f2也是一樣,這樣做的好處,是方便我們後面使用,畢竟用鍵盤輸入數學式,不是一件很容易的事,如果每次我們要用到就重打一遍,既不方便也不聰明。筆者建議同學們,要養成將算式指定給變數的好習慣。
接著來到%i3,本例是解聯立方程式,所以第一個參數會是一個以上的方程式,要注意是以[](方框號)把方程式括起來,而方程式之間是以「,」(逗號)做區隔,而第二個參數,我們要求兩個不同變數的解,也是要用[](方框號)括起來,「,」(逗號)做區隔。接著直接看%o3,我們得到 。
在%i3和%o3之間的一堆 'rat' replaced xxxxxxx,是因為浮點數轉換產生的訊息,不影響計算,但如果想關閉的話,你可以使用ratprint函數(預設是true),將它改為false。如下圖所示:
現在那些訊息不會出現了。
總結:
有關solve()函數,就是這三種用法,當然你可以計算的更複雜,例如計算3個方程的聯立,或是更多,隨你高興。
另外在例3提供一些概念,讀者要注意,反覆思考,這一些對你在往後的Maxima操作都會有所幫助。
作業:
.小明身上恰有23枚硬幣,共180元;其中5元硬幣有x枚,10元硬幣有y枚。
- 列出聯立方程式,並將其指定給var1和var2。(30%)
- 請想像,原先指定var1和var2變數的Input不見了,我們只知道這兩個變數確實存在,但不知道各自代表什麼,請問在Maxima,你會怎麼做,來知道var1和var2代表的意義?(20%)
- 求出5元硬幣有幾枚,10元硬幣又有幾枚?(20%)
- ☆請將先前指定的var1和var2變數刪除,並證明刪除成功。(30%)