Fibonacci法的matlab实现
来源:互联网 发布:梯度下降算法迭代 编辑:程序博客网 时间:2024/06/12 20:34
推导过程看百度文库中的ppt
Fibonacci法的基本步骤:
测试程序:try_FibonacciOpt.mclear all;clc%% the original conditionsf=@(x)exp(-x)+x^2;a=0;b=1;Theta_error=0.15;%% execute FibonacciOpt Algorithm[x_opt,f_opt,stepNum]=FibonacciOpt(f,a,b,Theta_error);%% function figurex=a:0.01:b;y=exp(-x)+x.^2;plot(x,y,'k')hold onplot(x_opt,f_opt,'r*')fprintf('%d is the optimal point of the function and execute %d steps',x_opt,stepNum)
FibonacciOpt算法程序:FibonacciOpt.mfunction [x_opt,f_opt,stepNum]=FibonacciOpt(f,a,b,Theta_error)%% compute Fn and the step numbersFn=(b-a)/Theta_error;x=[];x(1)=1;x(2)=1;i=1;while x(i)<Fn x(i+2)=x(i)+x(i+1); i=i+1;endN=i;%% the Opt Algorithma1=x(N-2)/x(N)*(b-a)+a;a2=x(N-1)/x(N)*(b-a)+a;for i=1:N-3f1=feval(f,a1);f2=feval(f,a2);if f1>f2 a=a1; f1=f2; a1=a2; a2=a+x(N-i-1)/x(N-i)*(b-a); else b=a2; a2=a1; f2=f1; a1=a+x(N-i-2)/x(N-i)*(b-a); end stepNum=i;end x_opt=(a+b)/2; f_opt=feval(f,x_opt); stepNum=stepNum+1;
0 0
- Fibonacci法的matlab实现
- Fibonacci数列的实现
- Fibonacci数列的实现
- 关于Fibonacci的实现
- Fibonacci的尾递归实现
- fibonacci的几种实现
- Fibonacci数列的非递归实现
- Fibonacci 实现的3种方法
- Fibonacci数列的递归简单实现
- Fibonacci数列的函数实现总结
- Fibonacci六种实现方式的比较
- 斐波拉契数列(Fibonacci)的Python实现
- fibonacci数列的递归C++实现
- Fibonacci的递归及非递归实现
- 动态规划法实现fibonacci数列求解
- 层次分析法的matlab的实现
- 灰度阈值分割法的matlab实现
- 作业成本法的matlab实现
- HTTP协议浅析(上):简介
- php设计模式之四__观察者模式
- sqlite3移植
- python读取有中文文件时的报错处理
- java类成员初始化顺序
- Fibonacci法的matlab实现
- Android中的通知notification
- Spring集成Junit4单元测试
- C++
- 1020. Tree Traversals (25)
- 求最大连续bit数
- 字符串 挑出 字符串
- 机器学习面临的挑战和解决方法
- Android中圆形图的几种实现方式