MathSword教程3.非线性拟合

 

PS:推荐优先使用【启发式优化算法】工具求解,结果不理想再按如下方式求解!

1. 虽然程序提供多个函数进行非线性拟合,但是推荐使用程序界面上方的【高级优化】进行非线性拟合、非线性方程组求解、以及非线性规划问题。

2. 【高级优化】窗口里可自定义一些代码设置,可以指定优化变量取值范围,以及设置混合整数优化问题。

3. 非线性拟合整体步骤如下:

setp1. 将已知数据以矩阵变量形式存储(导入)在一个变量当中。

setp2. 打开【高级优化】窗口,在【模板】当中选择【函数拟合】

setp3. 在Code下误差函数ErrorFun里定义误差(其实就是把函数表达式写一遍)

setp4. 在Parameter下设置data关键字(这个就是step1里的变量)

setp5. 在Parameter下设置varCount关键字(即优化变量个数)

setp6. 在Parameter下设置errorCount关键字(即误差函数个数,这个根据step3当中定义的误差而定,一般就1个)

setp7. 然后点击【求解】即可

step8. 计算完毕后,回到程序命令行主窗口,输入Parameter下设置varName关键字后的名称,查看结果。

PS:当中还有很多参数,可具体看参数设置说明,不同参数,优化结果以及优化效率会有一定差异。

 

3 thoughts to “MathSword教程3.非线性拟合”

  1. 如果想更改误差的形式,比如说想改成每一个预测点的   (预测值-实际值)/实际值   的平均值  应该在哪里修改呢

      1. 嗯嗯,突然发现这个回复已经很久了。尝试了用您的软件做拟合,效果还是不太理想,不过还是谢谢您

发表回复

您的电子邮箱地址不会被公开。