江西省高安市宜春幼儿师范高等专科学校初等教育学院 黄 渊
达到最小。如果 关于b 是非线性函数,那么称这样的曲线拟合为非线性曲线拟合。
对于非线性曲线拟合,数学软件Matlab 提供了nlinfit 函数,它的调用格式为:
其中,b0为待定参数b 的初始值,其他的含义参见文献[1]第71页。关于初始值,一般要根据函数模型的数学意义和实际意义来猜测b0,这往往是比较困难的事,而且大部分数学建模教材通常直接给出初始值,不会解释初始值是怎么来的。所以笔者在给大专生讲授此内容时也直接给出初始值,但学生不易接受。
由于非线性曲线拟合实际上是一个无约束优化问题,即
决策变量是拟合函数 含有的待定参数b,因此可以用Lingo软件来解决。下面举一个例子。
例:给药方案制定问题,详细介绍参见文献[2]第145 页。
模型假设:
[1]机体看作一个房室。
[2]药物进入机体到分布均匀所需的时间不计。
[3]药物排出速率与血药浓度成正比,比例系数 。
下面通过非线性拟合求出参数 。
在Lingo 软件中输入以下程序:
在Matlab 软件中输入以下程序:
运行程序,得到散点图和拟合曲线图如下:
假设:
每次注射剂量D,间隔时间。
将代入计算得:
故可制定给药方案:
即首次注射 mg,其余每次注射 mg,注射的间隔时间为 h。
用Lingo 软件求解非线性曲线拟合,不需要给定初始值,弥补了Matlab 软件的不足,同时,程序简单,结果可靠,是求解非线性曲线拟合的一种比较好的方法,但是Lingo 软件不会作图,无法展示散点图和拟合曲线图,此时可借助Matlab 软件来解决。综上所述,对于求解非线性曲线拟合,最好将Lingo 软件与Matlab 软件两者结合起来使用,各取所长。