官术网_书友最值得收藏!

2.6 欠定方程的求解

前面介紹方程時,一直在假設方程的個數與未知數的個數是一致的,這些方程都是正常的方程,本節將探討異常的方程類型——欠定方程的概念與求解方法。


定義2-11 如果方程的個數等于未知數的個數,則方程稱為適定方程(wellposed equation,又稱恰定方程);如果方程的個數少于未知數的個數,則方程稱為欠定方程(underdetermined equation);如果方程的個數大于未知數的個數,則方程稱為超定方程(overdetermined equation)。

前面演示的隱式方程f(x,y)=0就是一個常見的欠定方程,如果由ezplot()或fimplicit()函數用圖解法求解,則得出的曲線上所有的點都滿足原欠定方程,這時,欠定方程有無窮多解。

在一些特殊的場合下,用隱函數繪制函數不能繪制出任何曲線,這時方程可能有個別孤立解。這種情況下也可以考慮采用fsolve()函數直接求解,不過在默認的設置下,fsolve()函數并不能求解方程與未知數個數不同的代數方程,需要將求解算法設置成levenberg-marquardt,即采用Levenberg–Marquardt算法求解欠定方程。如果采用more_sols()函數,也應該作相應的算法設置。本節將通過例子演示具有孤立解的欠定方程求解方法。


例2-45 試求解下面的欠定方程。

如果手工求解可以發現,原欠定方程可能分拆成兩個獨立方程,這樣,方程的個數與未知數的個數一致,就可以調用more_sols()類函數直接求解方程。

手工轉換的方法帶有很多的人為性,因為并不是所有欠定方程都是可以手工拆分的。這里不作這種手工轉換,試圖直接求解欠定方程。

如果嘗試用下面的語句繪制隱函數曲線,在調用過程中沒有任何警告信息,但最終不能得到任何曲線,說明方程只可能存在有限個孤立解。

現在可以人為地選擇Levenberg–Marquardt算法,再求解欠定方程,經過一段時間的運行,有可能找出該欠定方程所有的9個根。

得出的方程的9個解為(?2.8051,3.1313)、(3,2)、(0.0867,2.8843)、(3.3852,0.0739)、(3.5844,?1.8481)、(?3.7793,?3.2832)、(?0.1280,?1.9537)、(?3.0730,?0.0813)和(?0.2708,?0.9230),其中,搜索第四個解比較耗時。

主站蜘蛛池模板: 西峡县| 松原市| 镇康县| 关岭| 陆河县| 武义县| 陕西省| 庐江县| 宜宾县| 贵南县| 清原| 句容市| 清丰县| 筠连县| 洛隆县| 民乐县| 新和县| 遵化市| 诸暨市| 观塘区| 西安市| 丰顺县| 满城县| 阿图什市| 呼图壁县| 大新县| 新乡县| 德惠市| 宜宾县| 中卫市| 乌兰县| 萍乡市| 加查县| 铜陵市| 石屏县| 永和县| 达孜县| 梅河口市| 都匀市| 古交市| 黄梅县|