"수학적 모델링에 MATLAB의 응용 프로그램"(Zhuojin 우) 연구 노트 오늘 시작. 블로거 MATLAB은 R2016a입니다.
1.1 읽기 및 쓰기 데이터
상호 작용 1.1.1 Excel 및 MATLAB (약간)에
1.1.2 대화 형 메모장 및 MATLAB
- 판독
부하 ( '파일 이름. ***)
데이터 만 메모장이 부하 사용될 수있는 경우, 파일 이름에 매트릭스 형태로 저장된 상기 변수 데이터를 포함한다.
[A, B, C, ...] = textread ( '파일 이름', '포맷', N)
의 데이터를 각 열의 ABC 변수 이름을 저장하는 단계; 포맷 형식을 판독하는 단계; N 읽기의 수이다. - 기록
파일 저장 OBJ1 obj2보다 ...... 변수가 파일에 저장되어있는 파일 OBJ1 obj2보다 ...... (.mat 포맷) = FID는 fopen ( 'out.txt' , '중량')는 fprintf (FID '포맷', OBJ) ;
하여 obj 밖으로 저장. TXT에서
1.2 다항식 피팅
- polyfit (X, Y, N) , 다항식 피팅 반송 장치 내림차순 다항식 계수.
polyval (P, XI) 계산치 다항식;
X-는 Y 데이터 포인트는 P 반환 된 계수이다. XI는 필요한 포인트 계산의 가로 좌표입니다. - 그래픽 창 피팅
① 첫 번째 데이터 점 그리기
도구 - 기본 피팅은 그림에 따라 그래픽 창 및 설정을 클릭 ②.
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 차 데이터 가장 다항식 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曲线