图片缩略图

加菲

版本1.12.0.0(37.5 KB)由 理查德牧杖
优化多维多项式的函数形式适合模型数据

2.9 k下载

更新2013年12月17日

查看许可协议

该函数实现了一种使用遗传算法优化多项式形式的方法,即减少与使用所有可能项的最小二乘拟合相比所需的项数,如下文所述:

Clegg,J.等人,“使用遗传算法优化适合实验数据的多维多项式的函数形式”,2005年IEEE进化计算大会,928-934,爱丁堡,2005年9月

n个变量的一般多项式可以表示为:

a1 * x1 ^ 2 * x2 xn ^ ^ 4 * x3 ^ 1 * p + a2 * x_1 x2 ^ 3 ^ 6 * * x3 ^ 1 * xn ^ p +……

线性最小二乘拟合可以找到上述“A”表示的系数值,从而使函数和一组数据之间的误差最小化。如果事先不知道数据的功能形式,则可能需要使用所有可能的术语和功率组合,直到给定的大小。因为多项式中的项数由(n+(m-1))!/(n!)(m-1)!其中n是使用的最大功率,m是变量数量,对于多变量模型,所有可能项的数量可能变得非常大。例如,一个具有12个变量(最多8阶)的模型需要75582个术语。此外,这可能需要反演一个非常大的矩阵,以评估回归模型。

这个函数生成多项式形式的总体,每个多项式形式都是所有可能项的集合的子集,并评估它们是否适合由函数polyfitn返回的r平方值给出的模型数据。然后,根据它们的相对分数,利用遗传算法进行进化。进化是通过成功个体的交配和随机突变的引入来实现的。

该函数利用英国谢菲尔德大学进化计算团队的免费GA工具箱:

http://www.shef.ac.uk/acse/research/ecrg/gat.html

但关键子函数objpolyfit, crtpolyp, recpoly和mutpoly无疑可以很容易地使用MATLAB遗传算法和直接搜索工具箱。

这个函数可以使用文件交换中提供的多核包,但这不是必需的,只要始终使用选项即可。MCORE = false选项(任何情况下的默认选项)。

当前可在此处找到所需/推荐的功能:

遗传算法工具箱(必需):
http://codem.group.shef.ac.uk/index.php/ga-toolbox

polyfitn(必需):
http://www.mathworks.co.uk/matlabcentral/fileexchange/34765-polyfitn

gfit2(必需):
http://www.mathworks.co.uk/matlabcentral/fileexchange/22020

randMat(必需):
http://www.mathworks.co.uk/matlabcentral/fileexchange/24712

多核(可选):
http://www.mathworks.co.uk/matlabcentral/fileexchange/13775

* * * * *注意* * * * *

Gapolyfitn可以很好地将高阶多项式拟合到你的数据中。需要注意的是,这种高阶多项式可以给一个很好的分数,但在数据点之间存在高度的“铃声”。因此,用户在使用此工具拟合数据时应多加小心。

引用作为

理查德牧杖(2021)。加菲(//www.tatmou.com/matlabcentral/fileexchange/25499-gapolyfitn), MATLAB中央文件交换。检索

MATLAB版本兼容性
创建R2008a
与任何版本兼容
平台的兼容性
窗户 马科斯 Linux

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始打猎吧!