Maison > tutoriels informatiques > connaissances en informatique > Ajustement des données de population à l'aide de Matlab

Ajustement des données de population à l'aide de Matlab

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2024-01-17 08:15:34
avant
1033 Les gens l'ont consulté

Ajustement des données de population à laide de Matlab

Matlab résout le problème de l'ajustement des données démographiques

clear;clc

% Il s'agit d'un problème de régression linéaire Utilisez Matlab pour écrire le programme suivant :

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

intrigue secondaire(221)

intrigue(x,y) ;

%Supposons le modèle y=a0+a1*x+e;

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

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

X=1960:2222;

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

intrigue secondaire(222)

intrigue(X,Y);

%Depuis 2003, la population a doublé en 43 ans et a dépassé les 10 milliards en 2077

%La population mondiale en 2002 était de 5,52357 milliards

Comment utiliser l'analyse de régression non linéaire Matlab

% Prenez le logarithme des deux côtés de y=x^a, et nous avons log(y)=a*log(x). Si log(y) est considéré comme une fonction de log(x), alors ils sont linéaires. . Ceci Lorsque le nombre d'équations est de 10 000 et que le nombre inconnu est 1 (a), vous pouvez utiliser la division matricielle de Matlab pour résoudre l'équation contradictoire (en utilisant la méthode des moindres carrés)

%Ce qui suit est un exemple. J'ai généré un ensemble de 10 000 séquences (x, y) avec a=1,45. Bien sûr, j'ai ajouté quelques perturbations aléatoires (vous pouvez l'essayer. Si vous ne l'ajoutez pas, vous le ferez. obtenez certainement 1,45)

>> a=1.45;

>> x=linspace(1,10,10000)'; %Notez que vous devez le convertir en une solution de vecteur de colonne

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

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

Comment le faire dans MATLAB

Les longueurs de X et Y sont différentes. X est 16 nombres et Y est 8 nombres. Et les 8 premiers caractères de X valent tous 1. Si les 8 derniers nombres de X sont utilisés pour régresser Y, alors :

clear;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=polyfit(X(:,2),Y,1)

xx=linspace(1.5,12,30);

aa=polyval(p,xx);

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

y=poly2sym(p,'x')

Résultat de l'exécution :

p =

0,8950 4,1575

y = 0,8950*x+4,1575

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal