楼主: wudizhao
7929 20

[问答] matlab循环求解非线性方程的问题! [推广有奖]

21
wudizhao 在职认证  发表于 2016-5-8 00:36:20
crossbone254 发表于 2016-5-6 22:03
这个没有办法一般而论,看不到具体数据文件是不知道什么问题的,你之前怎么导入数据的
大师,能不能帮我看下程序?谢谢啦!我的程序是这样:
f = @(x,discount,beta_0,beta_y,beta_k,ln_K,beta_l,ln_Pl,beta_m,ln_Pm,beta_t,ln_T,...
     beta_yy,ln_Y_2,beta_kk,ln_K_2,beta_ll,ln_Pl_2,beta_mm,ln_Pm_2,beta_tt,ln_T_2,...
     beta_yk,ln_Y_K,beta_yl,ln_Y_Pl,beta_ym,ln_Y_Pm,beta_yt,ln_Y_T,beta_kl,ln_K_Pl,...
     beta_km,ln_K_Pm,beta_kt,ln_K_T,beta_lm,ln_Pl_Pm,beta_lt,ln_Pl_T,beta_mt,ln_Pm_T...
     ) 1+discount/exp(beta_0+beta_y*log(x)+beta_k*ln_K+beta_l*ln_Pl+beta_m*ln_Pm+beta_t*ln_T...
     +beta_yy*log(x)^2+beta_kk*ln_K_2+beta_ll*ln_Pl_2+beta_mm*ln_Pm_2+beta_tt*ln_T_2...
     +beta_yk*log(x)*ln_K+beta_yl*log(x)*ln_Pl+beta_ym*log(x)*ln_Pm+beta_yt*log(x)*ln_T+beta_kl*ln_K*ln_Pl...
     +beta_km*ln_K*ln_Pm+beta_kt*ln_K*ln_T+beta_lm*ln_Pl*ln_Pm+beta_lt*ln_Pl*ln_T+beta_mt*ln_Pm*ln_T)...
     -beta_y-beta_yy*log(x)-beta_yk*ln_K-beta_yl*ln_Pl-beta_ym*ln_Pm-beta_yt*ln_T;
x = zeros(5345,1);
for t = 1:5345
      x(t) = fsolve(f,Y(t),optimset,discount(t),beta_0(t),beta_y(t),beta_k(t),ln_K(t),beta_l(t),ln_Pl(t),beta_m(t),ln_Pm(t),beta_t(t),ln_T(t),...
     beta_yy(t),ln_Y_2(t),beta_kk(t),ln_K_2(t),beta_ll(t),ln_Pl_2(t),beta_mm(t),ln_Pm_2(t),beta_tt(t),ln_T_2(t),...
     beta_yk(t),ln_Y_K(t),beta_yl(t),ln_Y_Pl(t),beta_ym(t),ln_Y_Pm(t),beta_yt(t),ln_Y_T(t),beta_kl(t),ln_K_Pl(t),...
     beta_km(t),ln_K_Pm(t),beta_kt(t),ln_K_T(t),beta_lm(t),ln_Pl_Pm(t),beta_lt(t),ln_Pl_T(t),beta_mt(t),ln_Pm_T(t));
end

运行总出现这个提示:
错误使用 trustnleqn (line 28)
Objective function is returning undefined values at initial point. FSOLVE cannot continue.

出错 fsolve (line 366)
    [x,FVAL,JACOB,EXITFLAG,OUTPUT,msgData]=...

出错 main (line 12)
      x(t) =
      fsolve(f,Y(t),optimset,discount(t),beta_0(t),beta_y(t),beta_k(t),ln_K(t),beta_l(t),ln_Pl(t),beta_m(t),ln_Pm(t),beta_t(t),ln_T(t),.

请问这是怎么回事?麻烦大师了!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 06:49