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:当中还有很多参数,可具体看参数设置说明,不同参数,优化结果以及优化效率会有一定差异。
如果想更改误差的形式,比如说想改成每一个预测点的 (预测值-实际值)/实际值 的平均值 应该在哪里修改呢
直接在误差函数ErrorFun里定义即可。
嗯嗯,突然发现这个回复已经很久了。尝试了用您的软件做拟合,效果还是不太理想,不过还是谢谢您