看板 Programming 關於我們 聯絡資訊
曾經有人問我(有人想徵求我同意拿去科展, 或在網頁上提供給他的學生用) 如何設計出解方程式的程式, 而這方程式是由使用者自己任意撰寫, 而非該程式作者內定的, 即使用者可自己指定為二元一次方程式、 三角函數式、分式..... 原始碼因程式語言的關係不便張貼, 是我 20 年前設計的, 在此提供點子指引各位: 1.首先要選對撰寫用的程式語言:  我的建議是選用解譯式語言,  因為既然方程式要能讓使用者撰寫, 一定是外叫,  即您的程式將使用者寫的程式當做副程式  叫進來執行,  而想運算叫進來的副程式就得利用解譯功能,  如早期的 BASIC 語言,  以及我唸大學時教授推薦的 derive,  後者就是內建了陽春式的解譯器及文書編輯器. 2.熟讀微積分, 尤其是數值分析部份:  解方程式對大學生而言最萬能的方法  就是 Honer 及 Newton,  但是初出茅蘆的大一生不知它們  各自的強處及弱點.  對絕大多數的大一生會很討厭數值分析,  因為會算個半死,  但我卻非常佩服 Honer 及 Newton 的眼光,  因為他倆的發明非常適合用電腦去算,  尤其是寫成程式.  Honer 的強處是越算越精確、越接近標準答案,  缺點是計算者眼光要很敏銳, 要選對種子,  若搜索範圍太寬, 可能有個峽谷, 內藏個根,  會被跳過去.  Newton 的強處是懶人喜歡用,  因為它會自己找答案,  缺點是只能用於曲線, 或遇到不可微分處  (如尖角)也算不出,  此外它常常在根附近打轉, 就是不接近精確值.  我的建議是要截長補短, 同時搭配兩法. 3.善用你的資料精度:  其實在電腦時代還有一招萬用解法,  是我自創的, 特別適合超級電腦,  那就是以您的資料精度為單位逐一搜索.  舉個例子, 您寫了個會畫出函數圖的程式,  想由圖中解根,  假設您螢幕的解析度是 1024 x 768,  那麼就設個雙重迴圈,  for(x=0; x<1024; x++) 及 for(y=0; y<768; y++)  然後一點一點去試, 一定找得到解,  差在精度不同而已.  為何說它適合超級電腦呢?  因為您可能是為了算氣象或宇宙現象,  資料龐大又有時間限制,  且有很多方程式目前數學家還不會算. 4.程式設計原理:  很簡單, 把自變量(x)代進副程式求因變量(y),  差異越小表示越接近根了. -- 還在用文字模式勉強表達數學式嗎? 歡迎參觀第四代繪圖模式BBS! 微積分、相對論都難不倒它喔! 下列是提供連線用程式(client)軟體的抓取網址 (2010/01/31後消失): http://rapidshare.com/files/316447854/BraveClient_1_1_0.rar.html
wa120:寫得好像有多偉大似的... 140.133.9.148 12/06 23:15
MasterChang:廣告而已,不用想太多.... 59.104.123.176 12/06 23:39
dryman:直接去弄個octave就好 114.45.174.238 12/06 23:57
xam:囧... 還你自創的方法勒.. 114.32.92.137 12/07 00:03
sunneo:他xx的 = = 這種垃圾玩意也敢拿來吹牛 118.171.82.213 12/07 06:15
sunneo:超級電腦一定是他長輩噓他的 暗指`無效率` 118.171.82.213 12/07 06:19
MOONRAKER:敝帚自珍…我好像看到朱邦復了 XD 59.120.168.228 12/07 10:53
yoco315:至少算有熱血啦 XD 不過見識少了點就是..118.160.113.173 12/07 20:28
yoco315:跟我國高中的時候閉門造車一樣..118.160.113.173 12/07 20:28
yoco315:不過那時也沒網路.. 只能猛跑圖書館118.160.113.173 12/07 20:28
yauhh:Access violation at address ooxxooxx in 61.231.16.50 12/15 07:53
yauhh:module 'BraveClient.exe'. Read of address 61.231.16.50 12/15 07:53
yauhh:xxooxxoo. 可惜了. 61.231.16.50 12/15 07:53