楼主: tany2322
1025 3

[休闲其它] matlab 编程 [推广有奖]

  • 1关注
  • 0粉丝

讲师

75%

还不是VIP/贵宾

-

威望
0
论坛币
1969 个
通用积分
9.0500
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
9357 点
帖子
134
精华
0
在线时间
758 小时
注册时间
2014-6-2
最后登录
2023-11-12

楼主
tany2322 发表于 2014-11-7 18:30:45 |AI写论文
20论坛币
matlab 编程一点也不懂,从网上找了一个斐波那契法的程序代码,但是运行总是说函数或变量未定义,求指教

关键词:MATLAB matla atlab Atl Lab matlab 程序 网上

沙发
tany2322 发表于 2014-11-7 18:33:31
function [xm,fm]=fbnc(f,a,b,delta,e)
%%xm为决策变量最优值
%%fm为目标函数最优值
%%f为目标函数
%%a为搜索下界
%%b为搜索上界
%%delta为精度参数
%%e为指定的一个很小的数
format long;
F=ones(2,1);  %%因为数组没有F(0),所以n=n+1,但不影响F(n)的值
c=F(2)- 1/ delta;
n=2;
while c<0
     n=n+1;
     F(n)=F(n-1)+F(n-2);
     c=F(n)- 1/ delta;
end

t=a+F(n-2)*(b-a)/F(n);  %%t、u为试点
u=a+F(n-1)*(b-a)/F(n);
k=1;

while 1
     if f(t)>f(u)
       a=t;
       t=u;
       u=a+F(n-k-1)*(b-a)/F(n-k);
       if (k==n-3)
         break;
       else
         k=k+1;
       end
     else
       b=u;
       u=t;
       t=a+F(n-k-2)*(b-a)/F(n-k);
       if (k==n-3)
         break;
       else
         k=k+1;
       end
     end
end

t=(a+b)/2;
u=a+(1/2+e)*(b-a);
if f(t)>f(u)
  xm=u;
else
  xm=t;
end
fm=f(xm);
format short;

藤椅
tany2322 发表于 2014-11-7 18:34:09
代码在上面,求正确代码

板凳
tany2322 发表于 2014-12-15 12:33:14
已经解答,不需要

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2026-1-5 09:52