教您如何設計解方程式的程式!

看板Programming作者時間14年前 (2009/12/06 21:01), 編輯推噓-2(247)
留言13則, 8人參與, 最新討論串1/1
曾經有人問我(有人想徵求我同意拿去科展, 或在網頁上提供給他的學生用) 如何設計出解方程式的程式, 而這方程式是由使用者自己任意撰寫, 而非該程式作者內定的, 即使用者可自己指定為二元一次方程式、 三角函數式、分式..... 原始碼因程式語言的關係不便張貼, 是我 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

12/06 23:15, , 1F
寫得好像有多偉大似的...
12/06 23:15, 1F

12/06 23:39, , 2F
廣告而已,不用想太多....
12/06 23:39, 2F

12/06 23:57, , 3F
直接去弄個octave就好
12/06 23:57, 3F

12/07 00:03, , 4F
囧... 還你自創的方法勒..
12/07 00:03, 4F

12/07 06:15, , 5F
他xx的 = = 這種垃圾玩意也敢拿來吹牛
12/07 06:15, 5F

12/07 06:19, , 6F
超級電腦一定是他長輩噓他的 暗指`無效率`
12/07 06:19, 6F

12/07 10:53, , 7F
敝帚自珍…我好像看到朱邦復了 XD
12/07 10:53, 7F

12/07 20:28, , 8F
至少算有熱血啦 XD 不過見識少了點就是..
12/07 20:28, 8F

12/07 20:28, , 9F
跟我國高中的時候閉門造車一樣..
12/07 20:28, 9F

12/07 20:28, , 10F
不過那時也沒網路.. 只能猛跑圖書館
12/07 20:28, 10F

12/15 07:53, , 11F
Access violation at address ooxxooxx in
12/15 07:53, 11F

12/15 07:53, , 12F
module 'BraveClient.exe'. Read of address
12/15 07:53, 12F

12/15 07:53, , 13F
xxooxxoo. 可惜了.
12/15 07:53, 13F
文章代碼(AID): #1B6wiFwi (Programming)