24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2041  |  回复: 7

涂涂木

金虫 (正式写手)

[求助] 最小二乘法拟合,发现,平方差和偏大,这是什么原因啊,请教各位可能的原因

最小二乘法拟合,发现,平方差和偏大,这是什么原因啊,请教各位可能的原因,
[~,S]=lsqnonlin(@taoget, tao0, [], [], [], C_i, t_i, beta_n, L, m);希望这个值小于10-6,但是运算结果很大,造成这个原因是什么引起的啊,求教各位大侠了,我是菜鸟
回复此楼
向前看
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

baobiao007

木虫 (职业作家)

中国特色

【答案】应助回帖


感谢参与,应助指数 +1
xiegangmai: 金币+1, 谢谢提示! 2012-09-17 17:58:51
结果很大到底是多大? 你确定自己的参数给的合理吗? 做拟合要求你对自己的数据十分了解,如果稀里糊涂获得的数据十有八九做不好。
我同意叔本华的观点,人们投身艺术和科学领域的强烈愿望之一就是逃离痛苦、残酷和枯燥无味的现实生活,逃离自己飘忽不定的七情六欲的桎梏。--爱因斯坦
2楼2012-09-17 16:46:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nono2009

超级版主 (文学泰斗)

No gains, no pains.

优秀区长优秀区长优秀区长优秀区长优秀版主

【答案】应助回帖


感谢参与,应助指数 +1
xiegangmai: 金币+1, 谢谢参与! 2012-09-17 17:58:57
可能是拟合方程形式不合适吧。
3楼2012-09-17 16:57:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

allen_baobao

至尊木虫 (职业作家)

【答案】应助回帖


感谢参与,应助指数 +1
xiegangmai: 金币+1, 谢谢提示! 2012-09-17 17:59:11
你的目标函数选取得准确么?
Controlisahiddentechnology.——K.J.Astrom
4楼2012-09-17 17:39:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

allen_baobao

至尊木虫 (职业作家)

【答案】应助回帖

引用回帖:
4楼: Originally posted by allen_baobao at 2012-09-17 17:39:59
你的目标函数选取得准确么?

我的意思是要拟合的目标曲线表达式。
Controlisahiddentechnology.——K.J.Astrom
5楼2012-09-17 17:40:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

涂涂木

金虫 (正式写手)

一下程序是根据以上截图编写的,我印象中黄金分割法是求极小值或极大值的,运行过程中,发现有点偏差,请教各位大侠,这里的黄金分割法求得L是否满足图3的运行要求,
%% auxiliary equation %%
function y=auxiliary(x,L)
y=x*cot(x)+L-1;
%% Calculation of beta_n and F(i) %%
function S=F(C_i, t_i, L, m, n, tao0)
beta_n=ones(1,n);
      for i=1:n
          beta_n(i)=fzero(@auxiliary,[(i-1)*pi+1e-6,i*pi-1e-6], [], L);
      end   
[~,S]=lsqnonlin(@taoget, tao0, [], [], [], C_i, t_i, beta_n, L, m);
%% Calculation of sum of squared error to run LSQNONLIN  %%
function f= taoget(tao, C_i, t_i, beta_n, L, m)
      f=ones(1,m);
    for j=1:m
         ss=sum(2*L.*exp(-beta_n.^2.*t_i(j)./tao)./(beta_n.^2+L*(L-1)));
         f(j)=C_i(j)-ss;
    end      
clc,clear all;
t_i=[19.998 39.996 60 79.998 99.996 120 139.998 159.996 180 199.998 219.996 240 259.998 279.996 300 319.998 339.996 360 379.998,...
    399.996 420 439.998 459.996 480 499.998 519.996 540 559.998 579.996 600 619.998 639.996 660 679.998 699.996 720 739.998 759.996 780];
C_i=[0.169560891 0.094901613 0.06222569 0.044350897 0.033182443 0.025755344 0.0205755344 0.016727315 0.01389813 0.01169039 0.009948977,...
    0.008569505 0.007425149 0.006507127 0.005732515 0.005094485 0.004545233 0.0040711 0.003670136 0.003319903 0.003020399 0.002752115,...
    0.002517 0.00230725 0.002129694 0.001969698 0.001819459 0.001687755 0.00157849 0.001466299 0.001364838 0.00127606 0.001191185 0.001118016,...
    0.001051677 9.86313e-4 9.30704e-4 8.78023e-4 8.28268e-4];
% t(i) and C/C0(i) experimental
m=length(t_i);
% number of experimental points
n=10;
% number of beta_n(beta_1,beta_2,...,beta_n)
L1=0;
%  lower bound of L
L2=100;
%  upper bound of L
tao0=100;
%  initial guess of tao
     
%  goldensection method for L
c = 0.5*(3 - sqrt(5));
a = L1; b = L2; x1=L1; x2=L2;                 
tol=1e-6;   
% tol is the error limit fof L
while (abs(x1-x2) > tol )
   x1 = a+c*(b-a);
   x2 = b - c*(b-a);
   if F(C_i, t_i, x1, m, n, tao0)<= F(C_i, t_i, x2, m, n, tao0)
      b=x2;
   else
      a=x1;
   end
end

L=(x1+x2)/2;
% final result of L
S=F(C_i, t_i, L, m, n, tao0);
% final result of S(sum of squared error)
beta_n=ones(1,n);
      for i=1:n
          beta_n(i)=fzero(@auxiliary,[(i-1)*pi+1e-6,i*pi-1e-6], [], L);
      end   
% final result of beta      
tao=lsqnonlin(@taoget, tao0, [], [], [], C_i, t_i, beta_n, L, m);
% final result of tao

L,S,beta_n,tao

1.jpg



2.jpg



3.jpg

向前看
6楼2012-09-17 20:49:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

涂涂木

金虫 (正式写手)

引用回帖:
6楼: Originally posted by 涂涂木 at 2012-09-17 20:49:45
一下程序是根据以上截图编写的,我印象中黄金分割法是求极小值或极大值的,运行过程中,发现有点偏差,请教各位大侠,这里的黄金分割法求得L是否满足图3的运行要求,
%% auxiliary equation %%
function y=auxili ...

截图1为,拟合的函数表达式,各位大侠指点下我啊
向前看
7楼2012-09-17 20:54:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

涂涂木

金虫 (正式写手)

我现在有一点想法,拟合的方程是一个减函数!!就是这个黄金分割法这部分程序中,缩小区间的判据,
if F(C_i, t_i, x1, m, n, tao0)<= F(C_i, t_i, x2, m, n, tao0)
改成使得abs(c_i-F(C_i,t_i,X1,m,n,tao0)<=abs(c-i-F(c_i,t_i,x2,m,n,tao0),即按照文献判断准则来,各位大侠你们帮我指点一下啊

3.jpg

向前看
8楼2012-09-18 09:46:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 涂涂木 的主题更新
信息提示
请填处理意见