查看: 128|回复: 3|关注: 0

[已答复] 最小二乘优化(lsqnonlin)的初值(x0)选取?

[复制链接]

新手

7 麦片

财富积分


050


2

主题

5

帖子

0

最佳答案
发表于 2019-10-19 21:02:18 | 显示全部楼层 |阅读模式
我有两个方程 1.Tobs=T*e  ,其中T是常数,e=f(d)                      2. Tobs=M-(M-N)exp(-y*d)  ,M和N是常数

Tobs是观测值,用方程2,表示成y=f(d),代入方程1中,利用非线性最小二乘优化(lsqnonlin)求解y值。
代码如下,
function F = myfu(y)
                 Tobs=240+7*roundn(rand([1,25]),-4);
                 T_n=length(Tobs);

                 F1 = -4.732+22.45*7-0.6397*7^2+0.01074*7^3;
                 p = 0.918;            
                 S = 8;              
                 V = p*S*1000/(F1);   
                 j=sqrt(-1);
                 e = 3.1 + 0.0084*V + j*(0.037+0.00445*V);  
                 tano=(0.037+0.00445*V)/(3.1 + 0.0084*V);
                 bc=0.21/sqrt(e);     
                 k=2*pi/bc;
                 zj=(1+tano^2)^0.5;
                 zj1=(zj-1)/2;
                 zj2=(zj+1)/2;

                 a=k*zj1^0.5;
                 b=k*zj2^0.5;
                 ri=2/25;            
                 rw=4/9;              
                 Tice=266.15;        
          % 非线性最小二乘优化尝试解出y(gama)
              k=1:T_n;
              eq=abs(244.8-Tobs(k));
              d=-1/y*log(eq/144.3);
              A=exp(-4*a*d);
              B=(A*ri*rw).^0.5;
              Eice_1=real((1-ri)*(1-A*rw)/(1-A*ri*rw));
              e_2=1-B.*exp(-0.1.*b.*d);
              e_3=1+B.*exp(-0.1.*b.*d);
              Eice_2=e_2/e_3;
              F=Eice_1*Eice_2-Tobs(k)/Tice;
end

当我选取不同的x0的时候,会出现不同的最优解。我想问的是可不可以,让他在一定范围内,直接求出最优解。

新手

13 麦片

财富积分


050


0

主题

21

帖子

2

最佳答案
  • 关注者: 1
发表于 2019-10-19 22:45:40 | 显示全部楼层
lsqnonlin 非线性优化方法是一种局部最优方法,没有办法求出全局最优值。

论坛优秀回答者

中级

1040 麦片

财富积分


5001500


0

主题

2543

帖子

225

最佳答案
  • 关注者: 146
发表于 2019-10-20 20:04:29 | 显示全部楼层
换1stOpt试试,全局优化求解。

新手

7 麦片

财富积分


050


2

主题

5

帖子

0

最佳答案
 楼主| 发表于 2019-10-21 09:41:07 | 显示全部楼层
M_fun 发表于 2019-10-19 22:45
lsqnonlin 非线性优化方法是一种局部最优方法,没有办法求出全局最优值。

matlab中有求解全局最优的函数吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表