📄 exm041022_1.m
字号:
%exm041022_1.m 利用fminsearch指令进行非线性参数估计
k_noise=0.3; %控制噪声水平
[x,y,STDY]=xydata(k_noise); %运行仿真数据产生程序,产生数据
a0=[1 1 1 1]; %被估参数的初试猜测
options=optimset('fminsearch'); %这步在MATLAB6.1版中是必须的
options.TolX=0.01; %控制被估参数的迭代精度
options.Display='off'; %避免显示收敛信息
a=fminsearch(@twoexps,a0,options,x,y); %计算二乘残差最小时的参数估计
chi_est=twoexps(a,x,y)/STDY^2; %估计参数下的Chi2量计算
freedom=length(x)-length(a0); %自由度
Q=1-chi2cdf(chi_est,freedom); %适当度
%以下用于绘图
y_est=a(1)*exp(-a(3)*x)+a(2)*exp(-a(4)*x);
ych='y_e_s_t='; %注意:该格式使图形中est三个字母成为下标
a1=num2str(a(1));a2=num2str(a(2));a3=num2str(a(3));a4=num2str(a(4));
char_y_est=[ych,a1,'*exp(-',a3,'*x) + ',a2,'*exp(-',a4,'*x)'];
plot(x,y,'b+');hold on,plot(x,y_est,'r');hold off,axis([0,4,0,16])
text(0.4,14,'y=3*exp(-0.4*x)+12*exp(-3.2*x)')
text(0.4,12,char_y_est),text(2.5,9,['chi2=' , num2str(chi_est)])
text(2.5,7,['freedom=' , num2str(freedom)])
text(2.5,5,['Q=' , num2str(Q)])
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -