當前位置:編程學習大全網 - 編程軟體 - 用黃金分割法求 f(x) = 8 * x ^ 3 - 2 * x ^ 2 - 7 * x + 3 的最優解(VB),在線等。

用黃金分割法求 f(x) = 8 * x ^ 3 - 2 * x ^ 2 - 7 * x + 3 的最優解(VB),在線等。

黃金分割法(又稱0.618法)是用來求單峰函數的最大值(或最小值)的算法。

這是壹種搜索法,不需要利用函數的導數值。

0.618法是根據黃金分割原理設計的,所以又稱之為黃金分割法。

優選法是壹種求最優化問題的方法。如在煉鋼時需要加入某種化學元素來增加鋼材的強度,假設已知在每噸鋼中需加某化學元素的量在1000—2000克之間,為了求得最恰當的加入量,需要在1000克與2000克這個區間中進行試驗。通常是取區間的中點(即1500克)作試驗。然後將試驗結果分別與1000克和2000克時的實驗結果作比較,從中選取強度較高的兩點作為新的區間,再取新區間的中點做試驗,再比較端點,依次下去,直到取得最理想的結果。這種實驗法稱為對分法。但這種方法並不是最快的實驗方法,如果將實驗點取在區間的0.618處,那麽實驗的次數將大大減少。這種取區間的0.618處作為試驗點的方法就是壹維的優選法,也稱0.618法。實踐證明,對於壹個因素的問題,用“0.618法”做16次試驗就可以完成“對分法”做2500次試驗所達到的效果。

所用到的 0.618 是黃金分割比的近似值。

黃金分割比 = (sqrt(5)-1)/2 ~= 0.61803398874989484820...

黃金分割比 又等於 斐波那契數列的 a(n)/a(n+1), n->∞

Private Sub Form_Activate()

Dim x As Double

Dim f As Double

Dim MM

MM = 0.1 '省略小數

For x = 0 To 2 Step 0.01

f = 8 * x * x * x - 2 * x * x - 7 * x + 3

If Abs(f - 0.618) < 0.1 Then

Print x

End If

Next

End Sub

有問題 ,思路是這樣的,程序有問題

  • 上一篇:什麽是推舟爐?推舟速度?最好有示意圖
  • 下一篇:哪位javascript高手幫我寫壹下,用javasctipt和html畫二次函數y=
  • copyright 2024編程學習大全網