Matlab/Octave 練習三: 更多的函式,幫助文件
前言
厭煩了練習二中隨意拼湊的無意義的程式?這章會有更有意義的程式,但仍然需要你去按照之前的情況,在實現之後每行加上註釋,明白每一行命令是什麼,如果你在某一命令卡住了,這章也有相應辦法,讓你熟悉matlab中自帶的文件功能。
練習是學習語言的最好途徑。
儲存為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.想往常一樣,閱讀文件,加上註釋,如果你不明白那些新來的函式(不包括你自己定義的),就用matlab自帶的help 來查閱資料。如
help plot
2.註釋出背後的數學邏輯。如ex3_exp.m:
%背景補充:這是馬爾薩斯人口模型,資料來源是美國人口從1790年到1990年間的人口資料,具體可以查閱相關資料深入瞭解
加分習題
1.使用help查詢一下glmfit。
2.進一步的,如果你想進一步瞭解某一函式,就使用doc指令,找到對應的文件,還有demo指令,能夠給你提供一些簡明的例子。
3.使用lookfor找到plot相關的一些函式,試圖用上述方法弄明白其中的一個兩個。