MATLAB 多组数据分别进行 一次线性拟合

MATLAB 多组数据分别进行 一次线性拟合,第1张

x=[02,8,178,251,323,465,502,545,581,622,663,702,752,803,827];

p=cell(1280,1024);

for i=1:1280

for j=1:1024

y=[i01(i,j),i02(i,j),i03(i,j),i04(i,j),i05(i,j),i06(i,j),i07(i,j),i08(i,j),i09(i,j),i10(i,j),i11(i,j),i12(i,j),i13(i,j),i14(i,j),i15(i,j)];

p{i,j}=polyfit(x,y,1); %这样每一个p的细胞元中,都存有k和b

end

end

x=[1 101000 12500 22500 200 255 107

1 965 118 218 1775 232 109

1 1005 124 224 1975 252 108];

y=[24;231;239];

bb=regress(y,x);

k=bb(1);

a=bb(2);

b=bb(3);

c=bb(4);

d=bb(5);

e=bb(6);

f=bb(7);

应该没有什么问题,如果有什么问题直接找我啊。

clear,clc;close all

x=[20,18,16,14,12,10,8,6,4,2,0,-2,-4,-6,-8,-10,-12,-14,-16,-18,-20];

y=[-098106,-088756,-079372,-068870,-060286,-050582,-040675,-030274,-020746,-01072,-00034,010462,01979,03017,040362,050412,060321,070614,080749,091196,10157];

p=polyfit(x,y,1)

z=polyval(p,x,1);

plot(x,y,'m',x,z,'r');

xlabel('x');

ylabel('y');

结果如下:

p =

 -00501    00033                     

%即:y=-00501x+00033

又见到这个题了,呵呵。

%由于产值Q、资金K、劳动力L之间满足著名的Cobb-Douglas生产函数关系:

%Q(K,L)=aK^αL^β, 0<α,β<1

clc;clear

Q=[105 118 129 130 130 142 150 152 146 160 169 181 193 195 201 200 209 196 220 212 216 208 224 256 234 245 258];

KL=[104 106 116 122 127 137 144 153 157 205 251 263 274 282 324 324 361 410 436 477 475 454 454 458 458 458 454;105 108 118 122 117 130 139 147 131 143 158 159 166 168 165 162 186 193 196 195 190 158 167 182 160 161 164];

curvefun=inline('x(1)(y(1,:)^x(2))(y(2,:)^x(3))','x','y')

x0=[01,01,02];

x=lsqcurvefit(curvefun,x0, KL,Q) ;

a=x(1),alpha=x(2),beta=x(3)

Q1=curvefun(x,KL);

plot(Q1,Q,'or'),xlabel('预测值'),ylabel('实际值')

axis([1 26 1 26])

line([1,26],[1 26])

figure(2)

plot3(KL(1,:),KL(2,:),Q),grid

xlabel('K'),ylabel('L'),zlabel('Q')

%%%%方法2

lnQ=log(Q);lnK=log(KL(1,:));lnL=log(KL(2,:));

X=[ones(1,length(Q));lnK;lnL]';

Y=lnQ';

b=regress(Y,X);

a=exp(b(1)),alpha=b(2),beta=b(3)

lnQ2=Xb;

Q2=exp(lnQ2);

figure(3)

plot(Q2,Q,'og',Q1,Q,'or'),xlabel('预测值'),ylabel('实际值')

axis([1 26 1 26])

line([1,26],[1 26])

结果:

a =

12246

alpha =

046116

beta =

-012768

a =

11766

alpha =

041529

beta =

0061854

可见,不同的回归方法,结果是有差异的~!

以上就是关于MATLAB 多组数据分别进行 一次线性拟合全部的内容,包括:MATLAB 多组数据分别进行 一次线性拟合、怎么用matlab进行多元线性的拟合、请教:matlab进行线性拟合等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9504491.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存