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

Anpassung von Bevölkerungsdaten mit Matlab

WBOY
Freigeben: 2024-01-17 08:15:34
nach vorne
977 Leute haben es durchsucht

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!

Quelle:docexcel.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage