前言
厭煩了練習(xí)二中隨意拼湊的無(wú)意義的程序催束?這章會(huì)有更有意義的程序集峦,但仍然需要你去按照之前的情況,在實(shí)現(xiàn)之后每行加上注釋抠刺,明白每一行命令是什么塔淤,如果你在某一命令卡住了,這章也有相應(yīng)辦法速妖,讓你熟悉matlab中自帶的文檔功能高蜂。
練習(xí)是學(xué)習(xí)語(yǔ)言的最好途徑。
保存為ex3_exp.m
t = 1790:10:1980;
x_t = [3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76.0 92.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5];
y = log(x_t);
a = polyfit(t, y, 1)
r = a(1)
x_0 = exp(a(2))
x_1 = x_0 .* exp(r .* t);
plot(t, x_t, t, x_1);
>>ex3_exp
以下保存為Mycurv.m
function [f] = Mycurv(a, t)
f = a(1) ./(1+(a(1)/3.9-1)*exp(-a(2)*(t-1790)))
以下保存為ex3_logi.m
x = 1790:10:1990;
y = [3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 ...
50.2 62.9 76 92 106.5 123.2 131.7 150.7 ...
179.3 204 226.5 251.4];
plot(x,y,'*',x,y);
hold on;
a_0 = [0.001, 1];
a = lsqcurvefit('Mycurv',a_0,x,y);
disp(['a=' num2str(a)]);
x_i = 1790:5:2020;
y_i = Mycurv(a, x_i);
plot(x_i,y_i,'r');
x_1 = 2010;
y_1 = Mycurv(a, x_i);
hold off
>>ex3_logi
嘗試
1.想往常一樣罕容,閱讀文檔备恤,加上注釋稿饰,如果你不明白那些新來(lái)的函數(shù)(不包括你自己定義的),就用matlab自帶的help 來(lái)查閱資料烘跺。如
help plot
2.注釋出背后的數(shù)學(xué)邏輯湘纵。如ex3_exp.m:
%
背景補(bǔ)充:這是馬爾薩斯人口模型,數(shù)據(jù)來(lái)源是美國(guó)人口從1790年到1990年間的人口數(shù)據(jù)滤淳,具體可以查閱相關(guān)資料深入了解
加分習(xí)題
1.使用help查詢一下glmfit梧喷。
2.進(jìn)一步的,如果你想進(jìn)一步了解某一函數(shù)脖咐,就使用doc指令铺敌,找到對(duì)應(yīng)的文檔,還有demo指令屁擅,能夠給你提供一些簡(jiǎn)明的例子偿凭。
3.使用lookfor找到plot相關(guān)的一 些函數(shù),試圖用上述方法弄明白其中的一個(gè)兩個(gè)派歌。