江西省高安市宜春幼兒師范高等專科學(xué)校初等教育學(xué)院 黃 淵
達(dá)到最小。如果 關(guān)于b 是非線性函數(shù),那么稱這樣的曲線擬合為非線性曲線擬合。
對(duì)于非線性曲線擬合,數(shù)學(xué)軟件Matlab 提供了nlinfit 函數(shù),它的調(diào)用格式為:
其中,b0為待定參數(shù)b 的初始值,其他的含義參見文獻(xiàn)[1]第71頁。關(guān)于初始值,一般要根據(jù)函數(shù)模型的數(shù)學(xué)意義和實(shí)際意義來猜測(cè)b0,這往往是比較困難的事,而且大部分?jǐn)?shù)學(xué)建模教材通常直接給出初始值,不會(huì)解釋初始值是怎么來的。所以筆者在給大專生講授此內(nèi)容時(shí)也直接給出初始值,但學(xué)生不易接受。
由于非線性曲線擬合實(shí)際上是一個(gè)無約束優(yōu)化問題,即
決策變量是擬合函數(shù) 含有的待定參數(shù)b,因此可以用Lingo軟件來解決。下面舉一個(gè)例子。
例:給藥方案制定問題,詳細(xì)介紹參見文獻(xiàn)[2]第145 頁。
模型假設(shè):
[1]機(jī)體看作一個(gè)房室。
[2]藥物進(jìn)入機(jī)體到分布均勻所需的時(shí)間不計(jì)。
[3]藥物排出速率與血藥濃度成正比,比例系數(shù) 。
下面通過非線性擬合求出參數(shù) 。
在Lingo 軟件中輸入以下程序:
在Matlab 軟件中輸入以下程序:
運(yùn)行程序,得到散點(diǎn)圖和擬合曲線圖如下:
假設(shè):
每次注射劑量D,間隔時(shí)間。
將代入計(jì)算得:
故可制定給藥方案:
即首次注射 mg,其余每次注射 mg,注射的間隔時(shí)間為 h。
用Lingo 軟件求解非線性曲線擬合,不需要給定初始值,彌補(bǔ)了Matlab 軟件的不足,同時(shí),程序簡(jiǎn)單,結(jié)果可靠,是求解非線性曲線擬合的一種比較好的方法,但是Lingo 軟件不會(huì)作圖,無法展示散點(diǎn)圖和擬合曲線圖,此時(shí)可借助Matlab 軟件來解決。綜上所述,對(duì)于求解非線性曲線擬合,最好將Lingo 軟件與Matlab 軟件兩者結(jié)合起來使用,各取所長(zhǎng)。