最小二乘多参数估计--matlab实现
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/07/08 04:42:02
最小二乘多参数估计--matlab实现
z(t;x)=hgt/(1+ht+mq)
h,g,m为模型待定参数,现有实验数据
t=[10 20 10 20 1]
对应的q和z数据如下
q=[1.0 1.0 2.0 2.0 0]
z=[0.126 0.219 0.076 0.126 0.186]
之前看过一张贴,我想问题差不多,但是仿造着做却不行,所以问问你!
不行哦,调试过了
z(t;x)=hgt/(1+ht+mq)
h,g,m为模型待定参数,现有实验数据
t=[10 20 10 20 1]
对应的q和z数据如下
q=[1.0 1.0 2.0 2.0 0]
z=[0.126 0.219 0.076 0.126 0.186]
之前看过一张贴,我想问题差不多,但是仿造着做却不行,所以问问你!
不行哦,调试过了
![最小二乘多参数估计--matlab实现](/uploads/image/z/19199867-59-7.jpg?t=%E6%9C%80%E5%B0%8F%E4%BA%8C%E4%B9%98%E5%A4%9A%E5%8F%82%E6%95%B0%E4%BC%B0%E8%AE%A1--matlab%E5%AE%9E%E7%8E%B0)
在Matlab下输入:edit,然后将下面两行百分号之间的内容,复制进去,保存
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function f=zhidao_vinxie(a,tq)
%a的三个变量分别代表h,g,m
%tq两个变量分别代表t,q
f=a(1)*a(2)*tq(:,1)./(1+a(1)*tq(:,1)+a(3)*tq(:,2));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
在Matlab下面输入:
t=[10 20 10 20 1];
q=[1.0 1.0 2.0 2.0 0];
tq=[t',q'];
z=[0.126 0.219 0.076 0.126 0.186];
[a,res]=lsqcurvefit('zhidao_vinxie',ones(3,1),tq,z');
res
h=a(1)
g=a(2)
m=a(3)
z_fit=zhidao_vinxie(a,tq);
plot(z,z,z,z_fit,'*');
legend('理论值','拟合值',4)
%%%%%%%%%不好意思没有说清楚.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function f=zhidao_vinxie(a,tq)
%a的三个变量分别代表h,g,m
%tq两个变量分别代表t,q
f=a(1)*a(2)*tq(:,1)./(1+a(1)*tq(:,1)+a(3)*tq(:,2));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
在Matlab下面输入:
t=[10 20 10 20 1];
q=[1.0 1.0 2.0 2.0 0];
tq=[t',q'];
z=[0.126 0.219 0.076 0.126 0.186];
[a,res]=lsqcurvefit('zhidao_vinxie',ones(3,1),tq,z');
res
h=a(1)
g=a(2)
m=a(3)
z_fit=zhidao_vinxie(a,tq);
plot(z,z,z,z_fit,'*');
legend('理论值','拟合值',4)
%%%%%%%%%不好意思没有说清楚.