永发信息网

matlab 多元非线性拟合 nlinfit y=a0*x1^a1*x2^a2*x3^a3*x4^a

答案:2  悬赏:70  手机版
解决时间 2021-02-25 21:01
  • 提问者网友:我是我
  • 2021-02-25 02:36
matlab 多元非线性拟合 nlinfit y=a0*x1^a1*x2^a2*x3^a3*x4^a
最佳答案
  • 五星知识达人网友:老鼠爱大米
  • 2021-02-25 03:49
两边取对数,log(y)=log(a0)+a1*log(x1)+a2*log(x2)+a3*log(x3)+a4*log(x4)这样就变成一个多元线性拟合问题了x1=[152.64 104.5\x05131.73\x05146.83\x05118.24\x0599.22];x2=[286.08 485.68\x051164.48\x05506.17\x051195.93\x051545.75];x3=[103.9\x05 101.82\x05101.47\x05104.77\x05105.9\x0599.32];x4=[238033.47 276505.32 322134.37 379226.81 442136.63 559484.38];y=[1500\x052000\x052400\x053200\x053500\x054700];A=[ones(6,1) log(x1)' log(x2)' log(x3)' log(x4)'];c=A\log(y)';a0=exp(c(1))a1=c(2)a2=c(3)a3=c(4)a4=c(5) .a0 =3.3727e-005a1 =0.0265a2 =-0.0193a3 =0.1990a4 =1.3517======以下答案可供参考======供参考答案1:这个函数先两边取log变为:log(y)=log(a0)+a1*log(x1)+a2*log(x2)+a3*log(x3)+a4*log(x4)再用regress线性拟合,程序如下:x1=[152.64 104.5 131.73146.83 118.24 99.22]';x2=[286.08 485.68 1164.48 506.17 1195.93 1545.75]';x3=[103.9 101.82 101.47104.77 105.9 99.32]';x4=[238033.47 276505.32 322134.37 379226.81 442136.63 559484.38]';y=[15002000 2400 3200 35004700]';X=[x1,x2,x3,x4];B=regress(log(y),log(X));a1=B(1)a2=B(2)a3=B(3)a4=B(4)得到:a1 = 0.1456a2 = -0.0325a3 = -2.1101a4 = 1.3449
全部回答
  • 1楼网友:酒者煙囻
  • 2021-02-25 04:35
好好学习下
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯