机械优化设计c语言鲍威尔法,机械优化设计鲍威尔法
機械優化設計鮑威爾法
機械優化設計鮑 威 爾 法班級:0841001成員:張波2010213217 張建2010213214 潘陽瑞2010213227 2013年6月鮑威爾法 鮑威爾(Powell)法是直接利用函數值來構造共軛方向的一種方法。 基本思想:在不用導數的前提下,在迭代中逐次構造G 的共軛方向。 一.基本算法:(二維情況描述鮑威爾的基本算法) 1)任選一初始點x 0 ,再選兩個線性無關的向量,如坐標軸單位向量e 1 =[1,0] T 和 e 2 =[0,1] T 作為初始搜索方向。 2)從 x 0 出發,順次沿 、 作一維搜索,得 、 點,兩點連線得一新 1 e 2 e 0 1 x 0 2 x 方向 1 d 0 0 2 1 x x d ? ?用 代替e 1, 形成兩個線性無關向量 ,e 1 ,作為下一輪迭代的搜索方向。再 1 d 1 d 從 出發,沿 作一維搜索得點 ,作為下一輪迭代的初始點。 0 2 x 1 d 0 1 x 3)從 出發,順次沿 、 作一維搜索,得到點 、 ,兩點連線得一新方向: 1 x 2 e 1 d 1 1 x 1 2 x 。 1 1 1 2 2 x x d ? ? 沿 作一維搜索得點 ,即是二維問題的極小點 。 2 d 2 x * x 把二維情況的基本算法擴展到n維,則鮑威爾基本算法的要點是:在每一輪迭代中總有一個始點(第一輪的始點是任選的初始點)和n個線性獨立 的搜索方向。從始點出發順次沿n個方向作一維搜索得一終點,由始點和終點決定了 一個新的搜索方向。用這個方向替換原來n個方向中的一個,于是形成新的搜索方向組。替換的原則 是去掉原方向組的第一個方向而將新方向排在原方向的最后。此外規定,從這一輪的 搜索終點出發沿新的搜索方向作一維搜索而得到的極小點,作為下一輪迭代的始點。 這樣就形成算法的循環。圖1.二維情況下的鮑威爾法 二.改進算法 在鮑威爾基本算法中,每一輪迭代都用連結始點和終點所產生出的搜索方向去替 換原向量組中的第一個向量,而不管它的“好壞” ,這是產生向量組線性相關的原因所 在。 在改進的算法中首先判斷原向量組是否需要替換。如果需要替換,還要進一步判 斷原向量組中哪個向量最壞,然后再用新產生的向量替換這個最壞的向量,以保證逐 次生成共軛方向。 為此,要解決兩個關鍵問題: (1) 是否較好?是否應該進入新的方向組?即方向組是否進行更新? 1 ? k d (2)如果應該更新方向組, 不一定替換方向 ,而是有選擇地替換某一方 1 ? k d k d 1 向 。 k m d 改進算法的具體步驟:(1)給定初始點 (記作 ) ,選取初始方向組,它由n個線性無關的向量 , 0 x 0 0 x 0 1 d ,., 所組成,置 。 0 2 d 0 n d 0 ? k(2)從 出發,順次沿 , ,., 作一維搜索得 , ,., 。接 k x 0 k d 1 k d 2 k n d k x 1 k x 2 k n x 著以 為起點,沿方向 k n x k k n k n x x d 0 1 ? ? ? 移動一個 的距離,得到 k k n x x 0 ? k k n k k n k n k n x x x x x x 0 0 1 2 ) ( ? ? ? ? ? ? 、 、 分別稱為一輪迭代的始點、終點和反射點。始點、終點和反射點所對應 k x 0 k n x k n x 1 ? 的函數值分別為:) ( 0 0 k x f F ?) ( 2 k n x f F ?) ( 1 3 k n x f F ? ? 同時計算各中間點的函數值,并記為: (i=1,2,.,n) ) ( k i i x f f ? 因此有 , 0 0 f F ? n f F ? 2 計算n個函數值之差 , ,., 。 1 0 f f ? 2 1 f f ? n n f f ? ?1 記作: (i=1,2,.,n) i i i f f ? ? ? ?1 其中最大者記作: m m i n i m f f ? ? ? ? ? ? ? ? 1 1 max (3)根據是否滿足判斷條件 和 0 3 F F ? ,來確定是否要對原方向組進行 2 3 0 2 2 0 3 2 0 ) ( 5 . 0 ) )( 2 ( F F F F F F F m m ? ? ? ? ? ? ? ? 替換。 若不滿足判別條件,則下輪迭代仍使用原方向組,并以 、 中函數值小者作 k n x k n x 1 ? 為下輪迭代的始點。 若滿足上述判別條件,則下輪迭代應對原方向組進行替換,將 補充到原方向 k n d 1 ? 組的最后位置,而除掉 。即新方向組為 作為下輪迭 k m d k n k n k m k m k k d d d d d d 1 1 1 2 1 , ,., , ,., , ? ? ? 代的搜索方向。下輪迭代的始點取為沿 方向進行一維搜索的極小點 。 k n d 1 ? 1 0 ? k x(4)判斷是否滿足收斂準則。若滿足則取 為極小點,否則應置 , 1 0 ? k x 1 ? ?k k 返回2,繼續進行下一輪迭代。這樣重復迭代的結果,后面加進去的向量都彼此對G共軛,經 n輪迭代即可得到一個由n個共軛方向所組成的方向組。對于二次函數,最多n次就可 找到極小點,而對一般函數,往往要超過n次才能找到極小點(這里“n”表示設計空 間的維數) 。 圖2.鮑威爾法的程序框圖 題目:用改進的鮑威爾法求目標函數 的最優 2 1 1 2 2 2 1 2 1 2 4 2 ) ( x x x x x x x f ? ? ? ?解。已知初始點[1,1]T,迭代精度 。 001 . 0 ? ? 解:初始點 ,初始搜索方向, 。初始點處的函數值 ] [ 1 1 0 0 ? x ] [ 0 1 2 0 2 ? ?e d 。 3 ) ( 0 0 0 0 ? ? ? ? x f f F 第一輪迭代: 1)沿 方向進行一維搜索,得 : 0 1 d] [ ] [ ] [ 1 1 1 1 0 1 1 1 0 1 1 0 0 0 1 ? ? ? ? ? ? ? ? ? d x x 為一維搜索最佳步長,應滿足極值必要條件: 1 ?] 3 4 [ min ] [ min ) ( 2 0 1 1 0 0 0 1 ? ? ? ? ? ? ? ? ? ? d x f x f) ( min ? ? ? ?0 4 2 ) ( 1 ? ? ? ? ? ? 所以算出一維搜索最佳步長 2 1 ? ? 得 ] [ 3 1 0 1 ? x 從而算出 點處的函數值及沿 走步后函數值的增量 0 1 x 0 1 d 7 ) ( 0 1 1 ? ? ? x f f 4 1 0 1 ? ? ? ? f f 2)再沿 方向進行一維搜索,得 0 2 d] [ ] [ ] [ 3 1 0 1 2 3 1 0 2 2 0 1 0 2 2 ? ? ? ?
總結
以上是生活随笔為你收集整理的机械优化设计c语言鲍威尔法,机械优化设计鲍威尔法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 视频格式转换应该用哪个视频转换软件最好呢
- 下一篇: 开票软件V2.0.49_ZS_20220