ホームページ  >  記事  >  コンピューターのチュートリアル  >  Matlab を使用した人口データの近似

Matlab を使用した人口データの近似

WBOY
WBOY転載
2024-01-17 08:15:34957ブラウズ

Matlab を使用した人口データの近似

Matlab は母集団データの近似の問題を解決します

クリア;clc

%これは線形回帰問題です。MATLAB を使用して次のプログラムを作成してください:

#xx=[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=[ones(9,1),x];

a=x\y%a(1)=a0,a(2)=a1.

XX=1960:2222;

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

サブプロット(222)

プロット(X,Y);

2003 年から 43 年間で人口は 2 倍になり、2077 年には 100 億人を突破しました

2002 年の世界人口は 55 億 2,357 万人でした

MATLAB 非線形回帰分析の使用方法

% 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)

MATLAB での実行方法

X と Y の長さが等しくありません。X は 16 個の数値、Y は 8 個の数値です。そして、X の最初の 8 文字はすべて 1 です。 X の最後の 8 つの数値を使用して Y を回帰すると、次のようになります。

クリア;clc

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=ポリヴァル(p,xx);

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

y=poly2sym(p,'x')

操作結果:

p =

0.8950 4.1575

y = 0.8950*x 4.1575

以上がMatlab を使用した人口データの近似の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はdocexcel.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。