• 沒有找到結果。

四、 數學建模和資訊科技的結合

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

sin11,則輸入 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=30o,如圖 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 電影院座位優化設計圖

相關文件