日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

MATLAB 无约束一维极值问题

發布時間:2025/4/16 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MATLAB 无约束一维极值问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

無約束一維極值問題

?

極值問題表達式:min?f(x)??x,x[?x1?x2];

?

一維極值的搜索方式包括線性搜索和非線性搜索,線性搜索包含黃金分割法、斐波那契法和牛頓法,非線性方法包含拋物線法和三次樣條插值。

?

1、進退法

??

算法原理:

?進退法就是用來確定搜索區間的算法,理論依據:f(x)為函數有一極值,且【a?b】為極值的區間,對于任一x1?x2屬于【a?b】,如果f(x1)<f(x2),則【a?x2】為極小值的搜索區間,如果f(x1)>f(x2),則搜索區間為【x1?b】為極小值的搜索區間,

因此,給定初始值x0,初始搜索步長h的情況下,首先以初始步長進行搜索,計算f(x0+h)

(1)如果f(x0)<f(x0+h)

則搜索區間為【x?x+h】,為確定x,計算f(x0+?h),,

(2)如果f(x0)>f(x0+h)

則搜索區間為【x+h?x】,為確定x,計算f(x0+?h),,

?

算法步驟:

?

1、給定初值x(0),初始步長h0,領h=h0,x(1)=x(0),k=0

2、給定x(4)=x(1)+h,k=k+1

3、若f(x(4))<f(x(0)),則轉到4,否則轉到5

4、令x(2)=x(1),x(1)=x(4),f(x(2))=f(x(1)),f(x(1))=f(x(4)),h=2*h

5、若k=1,轉到6,否則轉到7

6、令h=-h,x(2)=x(4),f(x(2))=f(x(4)),轉到2

7、令x(3)=x(2),x(2)=x(1),x(1)=x(4),停止計算,極小點包含區間[x(0)?x(1)],或者【x(3)?x(1]

?


算法代碼:

<span style="font-size:18px;"><strong>%進退法 % 功能:用進退法法求解一維函數極值 %目標函數:f % 初始點:x0 % 初始步長h0 % 精度 eps % 目標函數取包含極值的區間左端點 minx % 目標函數取包含極值的區間右端點 maxx function [minx,maxx]=minJT(f,x0,h0,eps) format long; if nargin==3eps=1.0e-6; end x1=x0; k=0; h=h0; while 1x4=x1+h;k=k+1;f4=subs(f,findsym(f),x4);f1=subs(f,findsym(f),x1);if f4<f1x2=x1;x1=x4;f2=f1;f1=f4;h=2*h;elseif k==1h=-h;x2=x4;f2=f4;elsex3=x2;x2=x1;x1=x4;break;endend end minx=min(x1,x3); maxx=x1+x3-minx; format short;</strong></span>

?

總結

以上是生活随笔為你收集整理的MATLAB 无约束一维极值问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。