[] [数理モデルにおけるMATLABの応用]

「数理モデルでMATLABの応用」(Zhuojin呉)の研究ノートの今日開始。ブロガーのMATLAB R2016aです。

1.1読み取りおよび書き込みデータ
1.1.1 ExcelとMATLAB(少し)を交流します

1.1.2対話型のメモ帳とMATLAB

  1. 読み取り
    負荷(「ファイル名。***」)
    のみのデータ、メモ帳を、負荷は、ファイル名にマトリクス状に格納された変数データを使用してもよいです。
    [A、B、C、...] = textread(「ファイル名」、「フォーマット」、N)
    保存するデータの各列のためのABC変数名、形式を読み取るフォーマット; N読み取りの数です。
  2. 書き込み
    ファイルを保存OBJ1 OBJ2 ......変数がファイルに格納されOBJ1 OBJ2 ......ファイル(.MAT形式)FID =はfopen( 'out.txtを' 、 '質量'); fprintfの(FID、 'フォーマット'、OBJ) ;
    objが出て保存しました。TXTで

1.2多項式フィッティング

  1. 関数polyfit(X、Y、N) ; 多項式フィッティング、戻り配列を降順に多項式係数。
    関数polyval(P、XI);計算値多項式;
    X、Yのデータ点は、Pが返さ係数です。XIは、必要な点計算の横座標です。
  2. グラフィックウィンドウをフィッティング
    ①最初のドローのデータポイントの
    ツール-基本的なグラフィックスウィンドウをクリックすると、図に従ってセット②フィッティング。
x=[1,2,3,4,5,6,7,8,9];
y=[9,7,6,3,-1,2,5,7,20];
plot(x,y,'r*')

ここに画像を挿入説明

それぞれ、二次を使用して、三次は、最良の多項式の三次のデータをフィット。

関数フィッティングを指定します3。

syms t
x=[0;0.4;1.2;2;2.8;3.6;4.4;5.2;6;7.2;8;9.2;10.4;11.6;12.4;13.6;14.4;15];
y=[1;0.85;0.29;-0.27;-0.53;-0.4;-0.12;0.17;0.28;0.15;-0.03;-0.15;-0.071;0.059;0.08;0.032;-0.015;-0.02];
plot(x,y,'r*')

私たちがイメージ関数が見つから使用することができます上記のプログラムを実行し
ここに画像を挿入説明
フィッティングを。

syms t
x=[0;0.4;1.2;2;2.8;3.6;4.4;5.2;6;7.2;8;9.2;10.4;11.6;12.4;13.6;14.4;15];
y=[1;0.85;0.29;-0.27;-0.53;-0.4;-0.12;0.17;0.28;0.15;-0.03;-0.15;-0.071;0.059;0.08;0.032;-0.015;-0.02];
f=fittype('a*cos(k*t)*exp(w*t)','independent','t','coefficients',{'a','k','w'});
cfun=fit(x,y,f)%显示拟合函数
xi=0:.1:20;
yi=cfun(xi);
plot(x,y,'r*',xi,yi,'b-')

fittype(「カスタム関数」、「独立」、「引数」、「係数」、{「係数」「......」});
実行上記手順我々は、カスタム関数の係数を得ることができます。

ツールボックスは、カーブフィッティング
ツールの入力コマンドウィンドウcftoolをカーブフィッティングを開くことができます

ここに画像を挿入説明
1.3データフィッティングの応用例
1.3.1人口予測

T=1:1:30;
Y=[33815,33981,34004,34165,34212,34327,34344,34458,34498,34476, ...
    34483,34488,34513,34497,34511,34520,34507,34509,34521,34513, ...
  34515,34517,34519,34519,34521,34521,34523,34525,34525,34527];
%30年的人口数据
plot(T,Y,'r*')

プログラムの実行など。集団は、非線形プロセスの時間とともに変化することが見出された、および漸近線横軸に平行です。だから我々は、物流曲線モデルを装着しました。

ロジスティック曲線の基本的な形がされ
ここに画像を挿入説明
、次式で置き換え、それは線形モデルに変換することができます。
ここに画像を挿入説明

T=1:1:30;
Y=[33815,33981,34004,34165,34212,34327,34344,34458,34498,34476, ...
    34483,34488,34513,34497,34511,34520,34507,34509,34521,34513, ...
  34515,34517,34519,34519,34521,34521,34523,34525,34525,34527];
%30年的人口数据
for t=1:30
    x(t)=exp(-t);
    y(t)=1/Y(t);
end
c=zeros(30,1)+1;
X=[c,x'];
B=inv(X'*X)*X'*y'%回归系数B
for i=1:30
    z(i)=B(1,1)+B(2,1)*x(i);%回归拟合值
    s(i)=y(i)-sum(y)/30;%离差
    w(i)=z(i)-y(i);%误差
end
S=s*s';%离差平方和
Q=w*w';%误差平方和
U=S-Q;%回归平方和
F=28*U/Q%计算并输出F检验值
%回归模型的拟合值
for j=1:10
    Y(j)=1/(B(1,1)+B(2,1)*exp(-j));
end
plot(T,Y)%输出logistics曲线

公開された22元の記事 ウォンの賞賛3 ビュー1830

おすすめ

転載: blog.csdn.net/qq_42825058/article/details/98661024