利用1stOpt进行方程拟合

1 1stOpt概述

1stOpt 是七维高科有限公司(7D-Soft High Technology Inc.)独立开发, 拥有完全自主知识产权的一套数学优化分析综合工具软件包。在非线性回归,曲 线拟合, 非线性复杂模型参数估算求解, 线性/非线性规划等领域傲视群雄, 首屈 一指,居世界领先地位。
1stOpt 界面简单、代码易懂而且包含较多算法,是一个比较好的方程拟合、数学规划的软件。

2 界面介绍

首先,打开1stOpt,界面如下:
在这里插入图片描述
在代码本中,我们可以输出变量、常量、所求参数、拟合方程、数据等等。在算法设置中,我们可以改变算法的类型以及相关参数,一般来说算法的相关参数基本不需要调整。
在这里插入图片描述
在结果选项卡中可以看到拟合的图像、迭代次数、误差、相关系数、最佳参数、等等。

3 实例分析

下面,我们以非线性拟合为例,方程为y = a1 * e^(a2 + a3 * x3 +((a4 + a5 * a6 * x2 * x3 + a7 * x2 ^ 2) / x1))。

3.1 定义参数(需要优化的值)

首先观察方程,方程中参数有7个,分别为a1-a7,在代码页,利用Parameter关键字进行定义。

//Parameters ;
Parameter a1(1:7[-1,1] ;

每个参数后面跟的中括号为参数的取值范围,如若没有取值范围则不写,写成Pa rameter a (1 :7) ;即可,每句代码最后必须加上分号。

3.2 定义变量(输入的长序列数据)

方程中变量有x1、x2、x3、y4个,在代码页,通过Variable关键字定义。

//Variable ;
Variable x1 , x2 , x3 , y;

注意,这4个变量的顺序与输入数据的顺序是一致的。

3.3 定义函数(需要拟合的方程)

方程的定义利用Function关键字进行。

//Function ;
Function y = a1 * exp(a2 + a3 * x3 +((a4 + a5 * a6 * x2 * x3 + a7 * x2 ^ 2) / x1));

其中,次幂可以利用^运算符。

3.4 输入数据

数据的输入利用Data关键字进行。

//Data;
Data;
0.280 	0.038 	0.470 	0.527
0.334 	0.074 	0.485 	0.800
0.320 	0.004 	0.939 	3.573
0.340 	0.014 	0.845 	0.706
0.202 	0.006 	0.895 	5.937
0.275 	0.024 	0.718 	0.959
0.489 	0.016 	0.714 	2.136
0.322 	0.013 	0.761 	1.264
0.258 	0.006 	0.907 	2.178
0.206 	0.014 	0.809 	6.912

数据每一列代表一个变量,根据定义的变量顺序从左到右分别为x1、x2、x3、y。最终的代码页如下:
在这里插入图片描述

3.5 运行

利用F9运行程序,在结果页查看结果。
在这里插入图片描述
可以看到曲线拟合结果较好,相关系数已经达到了0.87。

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐