Heim  >  Artikel  >  Computer-Tutorials  >  Anpassung von Bevölkerungsdaten mit Matlab

Anpassung von Bevölkerungsdaten mit Matlab

WBOY
WBOYnach vorne
2024-01-17 08:15:34957Durchsuche

Anpassung von Bevölkerungsdaten mit Matlab

Matlab löst das Problem der Anpassung von Bevölkerungsdaten

clear;clc

% Dies ist ein lineares Regressionsproblem. Verwenden Sie matlab, um das folgende Programm zu schreiben:

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]';

Nebenhandlung(221)

plot(x,y) ;

%Angenommen, Modell y=a0+a1*x+e;

x=[Einsen(9,1),x];

a=xy%a(1)=a0,a(2)=a1.

X=1960:2222;

Y=a(1)+a(2)*X;

Nebenhandlung(222)

plot(X,Y);

%Seit 2003 hat sich die Bevölkerung in 43 Jahren verdoppelt und im Jahr 2077 die 10-Milliarden-Marke überschritten

%Die Weltbevölkerung betrug im Jahr 2002 5,52357 Milliarden

So verwenden Sie die nichtlineare Matlab-Regressionsanalyse

% Nehmen Sie den Logarithmus beider Seiten von y=x^a, wir haben log(y)=a*log(x). Wenn log(y) als Funktion von log(x) betrachtet wird, dann sind sie linear. Wenn die Anzahl der Gleichungen 10.000 beträgt und die unbekannte Zahl 1 (a) ist, können Sie die Matrixdivision von Matlab verwenden, um die widersprüchliche Gleichung zu lösen (unter Verwendung der Methode der kleinsten Quadrate)

%Das Folgende ist ein Beispiel. Ich habe einen Satz von 10.000 (x, y)-Sequenzen mit a=1,45 generiert. (Sie können es versuchen. Wenn Sie es nicht hinzufügen, werden Sie es tun bekomme auf jeden Fall 1,45)

>> a=1,45;

>> x=linspace(1,10,10000)'; %Beachten Sie, dass Sie es in eine Spaltenvektorlösung konvertieren müssen

>> y=x.^a+0,5*rand(10000,1);

>> aa=log(x)log(y)

Wie es in MATLAB geht

Die Längen von X und Y sind unterschiedlich. X beträgt 16 Zahlen und Y beträgt 8 Zahlen. Und die ersten 8 Zeichen von X sind alle 1. Wenn die letzten 8 Zahlen von X zur Regression von Y verwendet werden, dann:

clear;clc

X=[1,0 1,0 1,0 1,0 1,0 1,0 1,0 1,0;

Y=[5,6 6,6 7,2 7,8 10,1 10,8 13,5 16,5]'

p=polyfit(X(:,2),Y,1)

xx=linspace(1.5,12,30);

yy=polyval(p,xx);

plot(X(:,2),Y,'o',xx,yy)

y=poly2sym(p,'x')

Laufergebnis:

p =

0,8950 4,1575

y = 0,8950*x+4,1575

Das obige ist der detaillierte Inhalt vonAnpassung von Bevölkerungsdaten mit Matlab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:docexcel.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen