Matlab語言可以與C/C++語言轉換或調用。
Matlab語句:load name 把name中文件的所有變量載入到工作空間中。save name 保存工作空間的變量到name.mat中。
cholesky分解把一個正定矩陣分為一個下三角矩陣和它轉置矩陣的乘積。
兩種創立符號函數的方法:sym函數與syms函數,sym函數一次只能生成一個變量,syms能生成多個變量。
常用的符號運算:極值,級數求和,微積分,解微分方程。
plot3函數:繪制三維圖像,mesh繪制三維網格曲面,surf繪制三維陰影曲面;用mesh畫出三維網格圖,要先用meshgrid進行網格化。
eps來代替0,數值大小接近于0,但放在除數里是安全的,這是用在matlab里的一個trick!
figure(1)...figure(n)用來打開不同的圖形窗口,以繪制不同的圖形
axis[xmin xmax ymin ymax]分別給出x軸的最小最大值,y軸的最小最大值。semilogx以x為對數坐標(以10為底),y為縱坐標的半對數圖形。
subplot(m,n,p) m,n用來分割圖形窗口,p表示圖形編號
繪圖中的gtext命令用于在圖形的某一點上放上說明文字(在圖形上會有一個光標要你來選)。
bar用來繪制條形圖,hist畫出以y為中心x的分布個數,stairs畫出階梯圖,stem散點圖。
線型r+: ? 顏色是紅色,點是+號,線是點畫線
M文件分為腳本M文件和函數M文件。腳本函數文件不接受輸入輸出,與變量空間共享變量的值。函數有自己的變量儲存空間。
Switch語句不一定以otherwise結尾
for循環知道循環次數。while不知道。continue使得當前循環不向下執行,跳入下一次循環。break語句退出循環!
return語句直接退出程序,不執行后續代碼
重載處理功能相似但參數類型或個數不同的函數中;
用global在函數內部聲明全局變量以后,函數內部對全局變量的修改會體現在工作空間中。
echo on命令可用于調試,顯示M文件執行的每條語句。
一個M-file可以包含超過一個函數,其中有一個主函數,用來調用該文件。而定義的次函數是為主函數和其它次函數服務的。
pause(n)放在M文件中可以停頓n秒。
Matlab可解優化問題:一元函數極小值(自變量有取值范圍),無約束極小值(可用搜索函數做),線性規劃,0.1整數規劃,二次規劃;約束極小值;minmax;非線性最小二乘;目標到達;
利用最小二乘法可以簡便地求得未知的數據,并使得這些求得的數據與實際數據之間誤差的平方和為最小。
固定點算法可以求非線性方程,一種迭代法。
牛頓法求f(x)=0,也是一種求根的迭代法。施羅德法和它類似。
Seidel法是固定點法的泛化。
對于非光滑優化問題,fminsearch比fminunc適合。
信賴域法只能求解線性等式約束的約束優化問題。
ga算法:遺傳算法。
求解無約束的一維極值問題常使用一維搜索法,一維搜索是沿著某一個方向求目標函數的極小值點,其方法是根據已知點得到新的點,而新的點更優。
一維搜索分為線性搜索和非線性搜索,線性搜索包括黃金分割,斐波那契,牛頓法。非線性搜索包括拋物線,三次插值法。
線性規劃linprog,二次規劃quadprog。fminsearch,fminunc一般適用于沒有約束條件的非線性優化情況。
exitflag有三個數值,1 0 -1.1表收斂于最優解,0表迭代次數過多,-1表被終止。
fminsearch與fminunc都是求解沒有約束條件的非線性優化。一個用的是擬牛頓法,一個用的是單純形法。
函數里的函數參數一般是函數句柄,先存在一個文件里面,調用的時候用句柄符號取。
非線性最小二乘問題,用lsqnonlin函數來求解。
約束條件的非線性優化fmincon。最小最大值問題fminmax。
?