一個關於MATLAB的怪問題

2010-12-16 10:27 am
為甚麼MATLAB有時會出現「particular case解不到,但是general case卻解到」這個情況?請詳細解釋。

例如以下這個情況:

圖片參考:http://i212.photobucket.com/albums/cc82/doraemonpaul/yahoo_knowledge/question/matlaboddproblem.jpg

回答 (2)

2010-12-29 9:14 am
✔ 最佳答案
看不懂提問的畫面,
謹就提問"可得general sol. 無法得particular(singular) sol."說明

數學軟體會作積分,當然也會解形式上的ODE,
因而對簡易的ODE(如separable, 1st order linear, Bernoulli, Euler, Raticci, ...)應該都可求得"general sol.",
但某些particular(singular) sol.不是積分而得的,因此以積分方法求之,找不到這些解
例: Solve xy'=(y-1)(y-2), 可得 y=(2-cx)/(1-cx)
但 y=1 並不在general sol. 內

其實大部分的particular sol. 可視為general sol.的limit case, 如上例 c-> inf即得y=1

又例: (dy/dx)^2-4x(dy/dx)+4y=0 有一個 general sol. y=2cx-c^2
而 y=x^2亦為其解, 且此解不屬於 y=2cx-c^2
事實上 y=x^2為 y=2cx-c^2的 envelope curve(也算limit case)

因此一般數學軟體求得的general sol. 再增加 parameter的limit或者 envelope
曲線的功能,就可更完美
(純屬個人想法)
2010-12-29 2:24 pm
或者我應該要說清楚HeunC函數到底是甚麼的東西。

其實HeunC函數就是如http://www.maplesoft.com/support/help/Maple/view.aspx?path=HeunC所指的東西,即是定義在f(x)y" + g(x)y' + h(x)y = 0(f(x)必定要是二次多項式,g(x)是最高可為二次的多項式,h(x)是最高可為一次的多項式)的其中一組線性獨立解上。首先,由於這個函數所連繫的微分方程已是最接近於這題所示的第二條微分方程的類型,因此其解用這個函數表示乃是合理的事。

2010-12-29 07:06:56 補充:
接著下來,如這題所示,第一條微分方程很明顯是第二條微分方程在a = 0和b = 1時的特例,而由於用MATLAB解第二條微分方程能解出真實的結果,因此用MATLAB解第一條微分方程理應能解出真實的結果。

可是在事實上卻事與願違,用MATLAB解第一條微分方程卻只能解出「搵笨解」,即是MATLAB認為第一條微分方程不能解。

因此我們就要判別第二條微分方程所解出的解是否適用於在a = 0和b = 1的時候。可是由於這題所示的a並沒有出現在分母,因此我們不能憑此一口咬定「a不能代0」,需要進階的判別方法。但我不懂有甚麼進階的判別方法適用於這個情況。

2010-12-29 07:10:13 補充:
因此我發問了這題,想大家幫忙判別一下究竟原因出現在「第二條微分方程所解出的解真的不適用於第一條微分方程」,還是「只是dsolve這個MATLAB程式的錯判」。


收錄日期: 2021-05-02 10:07:58
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20101216000016KK00854

檢視 Wayback Machine 備份