① 如何用matlab做高階系統的辨識,可以詳細講解下么
系統辨識往往也包括參數的辨識,即知道模型,辨識其中的參數,這種意義的辨識比較容易,線性的有很多,常用有最小二乘,非線性也可用用智能優化演算法,如遺傳演算法、粒子群。
系統辨識若是一般的意義,即包括模型辨識和參數辨識,首先需要確定模型,之後再參數辨識,模型可根據經驗確定,如AR模型,或直接確定階次近似模型。
matlab,不能確定模型,需要自己選,選定之後就是參數辨識,matlab中有參數辨識的方法。
② 用matlab的optimization工具箱遺傳演算法,添加約束條件的問題。
你看到下邊那個nonlinear constraint function了嗎?
把你的約束寫在一個m文件的function中,函數名比如取為:xconstr
則將@xconstr寫到nonlinear constraint function後面的框里,應該就可以了。線性約束的話直接寫在上方的欄目中。
你的優化問題沒看到,用遺傳演算法求解一般沒有問題。這種智能優化演算法的最大優點在於求解多局部解優化問題時能得到全局性較好的最有解。如果你不考解的全局最優性的話,可以直接使用fmincon函數來求解。關於fmincon函數,可以在matlab命令行中輸入 doc fmincon命令以查看幫助。
③ 用matlab的哪種演算法可以較好地解決下面這種優化問題
Matlab最優演算法只能解0,1變數的整數規劃,其他整數變數據我所知還解不了。智能演算法倒是可以試試,或者選擇其他軟體。不知道你是想最優求解,還是近優求解?
④ matlab優化工具箱裡面的fmincon用的是哪個優化演算法啊
幫助文件里,有介紹的:對於大規模優化問題,採用一種子空間信賴域演算法(基於內點反射牛頓演算法);對於中等規模優化問題,採用的是SQP序列二次規劃演算法。
⑤ matlab最優化演算法有哪些
matlab最優化程序包括
無約束一維極值問題 進退法 黃金分割法 斐波那契法 牛頓法基本牛頓法 全局牛頓法 割線法 拋物線法 三次插值法 可接受搜索法 Goidstein法 Wolfe.Powell法
單純形搜索法 Powell法 最速下降法 共軛梯度法 牛頓法 修正牛頓法 擬牛頓法 信賴域法 顯式最速下降法, Rosen梯度投影法 罰函數法 外點罰函數法
內點罰函數法 混合罰函數法 乘子法 G-N法 修正G-N法 L-M法 線性規劃 單純形法 修正單純形法 大M法 變數有界單純形法 整數規劃 割平面法 分支定界法 0-1規劃 二次規劃
拉格朗曰法 起作用集演算法 路徑跟蹤法 粒子群優化演算法 基本粒子群演算法 帶壓縮因子的粒子群演算法 權重改進的粒子群演算法 線性遞減權重法 自適應權重法 隨機權重法
變學習因子的粒子群演算法 同步變化的學習因子 非同步變化的學習因子 二階粒子群演算法 二階振盪粒子群演算法
⑥ matlab一個迭代優化演算法
第五步的限制條件,可以這樣來寫:
if abs(F(i)-F(i-1))<=0.01
返回到第二步,調用第二步的函數
end
⑦ matlab程序,哪位大神可以優化演算法節省時間,這個程序耗時太長了T^T
修改演算法。。。這一大串的代碼有多少人會仔細看啊,說明/注釋都沒有。
找出問題自己想辦法改吧
大致看了下,主要時間大概還是在多重循環那了。想縮減時間的話,簡化一下那部分
也可以調用matlab自帶的計時工具,看那個函數佔用時間做多。
⑧ matlab智能演算法30個案例分析中第十二章免疫優化演算法在物流配送中心選址的應用
罰函數是把約束條件變成目標函數一部分的一種方法,系數4是隨意取的,當然這個要根據實際情況,一般和你的目標函數在一個數量級上即可。如果系數取大了,那麼不同的自變數使得目標函數的值不同就表現不出來,如果取小了,反應不出約束條件的第一重要性。
⑨ 智能優化演算法學習的問題
在matlab中?可以用matlab自帶的遺傳演算法工具箱,也可以自己編寫遺傳演算法或蟻群演算法代碼去解決問題。屬於用智能演算法解決工程優化問題吧。
望採納。
⑩ 【求助】智能優化演算法用哪些模擬工具
liubinxp(站內聯系TA)通過利用MATLAB提供的豐富的內置函數庫,可以很快的編寫出比較復雜的演算法
並且可以利用其強大的繪圖和人機交互功能進行數據分析和顯示
但是由於很多功能是內置的,無法修改,所以靈活性不足
例如多數人不喜歡matlab內置的遺傳演算法工具箱而寧願自己編寫演算法
而採用C#、C++等編程語言設計演算法,雖然需要更長的開發時間,但更加靈活自主
特別當你還想評估演算法的運算量和運行效率時更加方便准確
特別是圖形的處理ghtvc(站內聯系TA)應該學習一下編程了absoluty(站內聯系TA)matlab是一種解釋性語言,就運行程序速度來說沒有C#等編譯語言快,但是matlab就其用途來說,適合於科研學習,模擬試驗,由於其帶有大量的函數,可以對矩陣,圖像等進行直接操作,而C#等語言沒有這個功能,必須自己編程去作,也就是說如果你僅僅是做試驗,建議用matlab,方便,容易學習,基本一周內就可以學會,而且可以編程,而C#其他語言,就沒怎麼簡單拉,如果要用他們去編程試驗,估計一個月能入門就不錯啦,別說做試驗,還有一種語言F#也不錯,做模擬試驗也挺好,但還是建議你用matlab