클리어;clc
% 이것은 선형 회귀 문제입니다. matlab을 사용하여 다음 프로그램을 작성하세요.
x=[1960,1961,1962,1963,1964,1965,1966,1967,1968]';
y=[29.72,30.61,31.51,32.13,32.34,32.85,33.56,34.20,34.83]';
서브플롯(221)
플롯(x,y) ;
%모델 가정 y=a0+a1*x+e;
x=[1(9,1),x];
a=xy%a(1)=a0,a(2)=a1.
X=1960:2222;
Y=a(1)+a(2)*X;
서브플롯(222)
플롯(X,Y);
%2003년 이후 43년 만에 인구가 2배 증가, 2077년에는 100억 명 돌파
%2002년 세계 인구는 55억 2,357억 명
% y=x^a의 양변에 로그를 취하면 log(y)=a*log(x)가 됩니다. log(y)가 log(x)의 함수로 간주되면 선형입니다. . 방정식의 개수가 10,000개이고 알 수 없는 숫자가 1(a)인 경우 MATLAB의 행렬 나눗셈을 사용하여 모순 방정식을 풀 수 있습니다(최소제곱법 사용)
% 다음은 a=1.45로 10,000개의 (x, y) 시퀀스 세트를 생성한 예입니다. 물론 임의의 섭동도 추가했습니다. 확실히 1.45를 얻으세요)
>> a=1.45;
>> x=linspace(1,10,10000)'; %열 벡터 솔루션으로 변환해야 한다는 점에 유의하세요
>> y=x.^a+0.5*rand(10000,1);
>> aa=log(x)log(y)
X와 Y의 길이는 다릅니다. X는 16개 숫자이고 Y는 8개 숫자입니다. 그리고 X의 처음 8자는 모두 1입니다. X의 마지막 8개 숫자를 사용하여 Y를 회귀하는 경우:
클리어;clc
X=[1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.5 2.0 3.0 4.5 7.5 9.1 10.5 12.0]'
Y=[5.6 6.6 7.2 7.8 10.1 10.8 13.5 16.5]'p=폴리핏(X(:,2),Y,1)
xx=linspace(1.5,12,30);
yy=폴리발(p,xx);
plot(X(:,2),Y,'o',xx,yy)
y=poly2sym(p,'x')
실행 결과:
피 =
0.8950 4.1575
y = 0.8950*x+4.1575
위 내용은 Matlab을 사용하여 인구 데이터 피팅의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!