四、 數學建模和資訊科技的結合
4.2 Maxima
在 Maxima 的首頁中介紹著說:「Maxima 是一個能夠符號運算、數值運算的系 統,包含微分、積分、泰勒展開式、拉普拉斯轉換、常微分方程、線性方程式、多項 式、集合、向量、矩陣、張量。Maxima 使用精確的分數、任意精確的浮點數來表示 出高精確的數值結果。Maxima 可以用二維或三維來畫出函數或資料的圖形。」因此 M a x i m a 的 功 能 已 足 夠 一 般 使 用 , 甚 至 也 堪 用 於 科 學 研 究 。 從 它 的 首 頁
http://maxima.sourceforge.net 可以下載到這個軟體。h h
圖 4-2-1 Maxima 程式的主畫面
Maxima 在操作上也相當簡單,幾乎不需要背任何指令,因為都可以點取選單 (menu)上的功能來命令電腦運算,只需要會簡單的算式輸入(加減乘除、指數)就可 以將計算部分通通給電腦來算。
4.2.1 Maxima 的基本功能 的基本功能 的基本功能 的基本功能
1. 多項式展開
在 INPUT 的地方輸入所要展開的多項式,例如 ( x + 2 )*( 2*x + 3)*(3*x – 7 )然後 按 Enter,它會將你所輸入的式子 ( 給電腦看的 ) 輸出成一般的數學算式 ( 給人看 的 )。接著再按下面工具列的 Expand,則會輸出展開結果。每個輸出的結果都有一 個代號,例如%o2,我們可以用這個代號來進行其他運算。例如再輸入另一個多項式 ( 2*x + 1)*( 3*x – 2 ),再展開之後得到%o4。接著在 INPUT 的地方直接輸入%o2 +
%o4,則會將兩個多項式相加。
圖 4-2-2 Maxima 兩個多項式相加
2. 解多項方程式 f ( x ) = 0
先在 INPUT 輸入所要解的 f(x),右邊「=0」不需要輸入。例如要解 0
100 56
99x2 + x+ = 則輸入 99*x^2 + 56*x + 100,按 Enter 之後,點取選單上的
Equations,再選取 Solve..這個選項,則會將 x 解出來。其中%i 表示虛數單位 -1。
圖 4-2-3 Maxima 解二元一次方程式
3. 數值計算
(1) 例如要計算sin10的近似值,則輸入 sin(%pi/18)。其中%pi 代表圓周率,10o化成 弧度則是 π
18 。接著點取選單上的 Numeric,選擇 To float,則會將近似值算出來。
圖 4-2-4 Maxima 求三角函數值
(2) 反三角函數也可以輕易算出來,例如要算 3
sin−11,則輸入 asin(1/3),然後以同樣
步驟可以得到 0.33983690945412,不過這個的單位是弧度,不是角度。要化成角 度需要乘以
π 180
,則輸入%o2*180/%pi,%o8 是之前輸出的結果。最後同樣再選 取 Numeric 裡的 To float,則得到近似值是 19.47122063449069 度,這樣的精確度 相當夠用了。
圖 4-2-5 Maxima 求反三角函數值
4. 求
∑
的值例如要求
∑
=
+
10 +
1
2 2 1
k
k
k 的值,則先輸入k2 + k2 +1。然後點選 Calculus 中的 Calculate sum… 會出現圖 4-2-6 的對話盒,再依序輸入好每個空格中的值之後,
再按 ok 確認,則會計算出結果 (圖 4-2-7)。
圖 4-2-6 輸入Σ的求值範圍
圖 4-2-7 Σ
求值的運作畫面
5. 微分與積分 指令方式的輸入法是 linsolve([x+y+z=1, 2*x-y-z=2, 3*x+2*y+z=3], [x,y,z])這個樣 子。只要按鍵盤上的↑ 這個鍵,就會將曾經用過輸入顯示在 INPUT 的地方,再
把輸入錯誤的地方更正即可,不需要整個重新輸入。
7. 矩陣運算
點選選單上的 Algebra 裡的 Enter matrix,可以輸入要用的矩陣。另外也可以 直接在 INPUT 輸入,例如 matrix([1,2,4], [3,1,5], [2,1,1])。同樣在 Algebra 這個選 單裡,可以來計算反矩陣、行列式值、特徵多項式、特徵值 (eigenvalues)、特徵 向量(eigenvectors)、轉置矩陣、伴隨矩陣 (adjoint matrix)等功能。
圖 4-2-10 Maxima 求反矩陣
4.2.2 數學建模中運用 數學建模中運用 數學建模中運用 Maxima- 數學建模中運用 - - -影院座位設計 影院座位設計 影院座位設計 影院座位設計
在 2004 年由上海復旦大學所舉辦的「第六屆大學生數學建模邀請賽」中的一道 試題如下:「下圖為影院的剖面示意圖,座位的滿意程度主要取決於視角 α 和仰角 β。
視角 α 是觀眾眼睛到螢幕上、下邊緣視線的夾角,α 越大越好;仰角 β 是觀眾眼睛到 螢幕上邊緣視線與水平線的夾角,β 太大使人的頭部過分上仰,引起不舒適感,一般 要求 β 不超過 30o。
設影院螢幕高 h, 上邊緣距地面高 H,地板線傾角 θ,第一排和最後一排座位與 螢幕水準距離分別為 d 和 D, 觀眾平均坐高為 c(指眼睛到地面的距離)。已知參數
h=1.8, H=5,d=4.5 ,D=19,c=1.1(單位:m)。(如圖所示)
圖 4-2-11 電影院座位直角坐標
則平均滿意程度最大為:在βi ≤30的條件下,
∑
αi的最大值。2.92 2.94 2.96 2.98 3 3.02 3.04 3.06 3.08
0 0.05 0.1 0.15 0.2 0.25 0.3
fun1
最後畫出視角總和的函數 y=∑
= 18
1 i
αi圖形,則在命令列中輸入繪圖指令:
plot2d ( [ %o27 ] , [ k, 0, %pi/9 ] )
要注意的是地板傾斜角 k 的範圖不超過 20o
,
要換算成弧度單位9
π。結果如圖
4-2-15 所示,得知此為單調遞增函數,即地板的傾斜角愈大,觀眾的視角和愈大。
圖 4-2-15 電影院地板傾斜角函數圖形
再來考慮觀眾的仰角與地板傾斜角關係。在 x 軸上取一點 K,使 OKA=30∠ o,如圖 4-2-16 所示, DI 為觀眾視角所在直線,
DI 與 AK 的交點為P,則 P 點觀眾的仰角為 30o。當 DI 與水平線夾角愈大時,DP 愈短,即仰角大於 30o的觀眾愈少。
圖 4-2-16 觀眾仰角與地板傾斜角關係圖
由以上兩點,傾斜角愈大時,觀眾的視角總和愈大,且仰角大於 30o的觀眾愈少,則平均滿意度最高。但考慮到最後一排的觀眾不能超過天花板,因此地板線的傾
斜角最大等於
DF與水平線夾角 15.06
5 . 4 19
1 . 1 arctan 5 ≈
−
−
( 3 ) 進一步提高觀眾滿意程度可以考慮以下幾點:
將地板墊高,使第一排觀眾的仰角不超過 30o。設 D(4.5, y1),由6 5 . 4
tan 1 5 1 π
− =
− y
可以解得y1 ≈2.4,也就是將地板墊高 1.3 公尺 (圖 3-2-17)。
稍微加大座位間的距離變為 0.9 公尺,可增加觀眾的滿意程度。 當觀眾眼睛所在位置低於螢幕下緣 (2.4≤ yi <3.2)時:考慮y1 = 2.4,視角的最大值發生在x1 = 1.44 的位置。但是座位的第一排是在 x= 4.5 的地方,因此實際上視角最大值在 (4.5, 2.4)的地方。在圖 4-2-17 中,當
地板線是直線時,第二排 (x=5.4)的觀眾眼睛所在位置為 P 點,從圖中可以看出 P 往上移時,視角會變大。
圖 4-2-17 電影院墊高地板座位圖
當觀眾眼睛所在位置位於螢幕上下緣之間 (3.2≤ yi ≤5)時:
觀眾愈靠近螢幕,視角愈大;在距離螢幕相同遠的地方,視角最大是在 AB 的 中垂線上,同時仰角也不會超過 30o,因此觀眾眼睛所在位置應盡量靠近 AB 的 中垂線。而最後一排的觀眾容易被擋到,所以觀眾的眼睛高度不能超過 FB 。
綜合以上所述,將原來的地板線改成如圖 4-2-18 的曲線,觀眾將可得到更好的 視角。FFFF
圖 4-2-18 電影院座位優化設計圖