幂函数曲线拟合在matlab中的实现(理论解)

幂函数曲线拟合在matlab中的实现(理论解)

1问题模型

现在要将样本拟合为幂函数:的形式

线性化即两边取对数:

幂函数曲线拟合转为多项式曲线拟合,根据最小二乘法控制残差,参考《数值分析》教材,其理论解为:

2代码实现(matlab)

function [a,c]=powerFunction_fit(x,y)

%输入参数x,y分别为样本点的横纵坐标列向量

%输出参数a,c为拟合的结果

vF=[x,y];

ln_vF=log(vF);

A=[6 sum(ln_vF(:,1));sum(ln_vF(:,1)) sum(ln_vF(:,1).^2)];

b=[sum(ln_vF(:,2));sum(ln_vF(:,2).*ln_vF(:,1))];

alog=A\b;

a=alog(2);

c=exp(alog(1));

end

3例题

现有一组样本点[[29.8,295.9];[59.9,341.6]; [148.9,412.4];[207.8,442.3];[299.3,455.1];[356.2,471.8]],进行幂函数曲线拟合,代码如下

x=[29.8000 59.9000 148.9000 207.8000 299.3000 356.2000]';

y=[295.9000 341.6000 412.4000 442.3000 455.1000 471.8000]';

[a,c]=powerFunction_fit(x,y);%powerFunction_fit()为上一节定义的函数

figure(2)

F2=c*x.^a;

plot(x,y,'o',x,F2)

grid on

title(['幂函数曲线拟合:y=',num2str(c,'%4.1f'),'x^{',num2str(a,'%4.3f'),'}'])

❈ ❈ ❈

相关文章

✧ ✧ ✧
中国十大宠物用品批发市场榜中榜
365bet足彩网上投注

中国十大宠物用品批发市场榜中榜

📅 06-29 👁️ 1087
古人治牙秘方大揭秘
bt365体育在线投注

古人治牙秘方大揭秘

📅 07-02 👁️ 9250
2021阴阳师R级式神莹草御魂搭配最佳方法
365英超

2021阴阳师R级式神莹草御魂搭配最佳方法

📅 06-30 👁️ 1646