欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mathematica斐波那契线搜索代码

程序员文章站 2022-03-02 10:42:00
...
(*参数说明:f为函数,a为区间下界,b为区间上界,e为精度*)
(*输出说明:输出为一个列表{a,b,n},其中[a,b]代表最后求得的解区间,n代表迭代次数*)
goldenSearch[f_, a_, b_, e_] := 
 Module[{n = 2, d = b - a, a0 = a, b0 = b},
  While[d > e,
   d = Fibonacci[n]/Fibonacci[n + 1]*d;
   u = a0 + d;
   l = b0 - d;
   If[f[u] < f[l], a0 = l, b0 = u];
   n = n + 1];
  {a0, b0, n - 2}]
相关标签: mathematica