⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.m

📁 罚函数法matlab程序.希望对大家有用.
💻 M
字号:
%主函数main.m
%用菲波那楔求函数y=3*x^4-16*x^3+30*x^2-24*x+8的极小值
%
%
clc
clear
a=input('请输入初始区间的上限:');
b=input('请输入初始区间的下限:');
e=input('请输入最终区间长度:');

 
A=(b-a)/e;
F(1)=1; 
F(2)=1;

n=2;
n=n+1;
F(n)=F(n-1)+F(n-2);

while F(n)<A
      n=n+1;
      F(n)=F(n-1)+F(n-2);
end

    k=1;
    x1=a+(b-a)*F(n-2)/F(n);
    x2=a+(b-a)*F(n-1)/F(n);
    f1=f(x1);
    f2=f(x2);
    while k<(n-3)
        if f1<f2
        a=a;
        b=x2;
        x2=x1;
        f2=f1;
        x1=a+(b-a)*F(n-k-3)/F(n-k-1);
        f1=f(x1);
        k=k+1;
        else f(x1)>=f(x2)
        b=b;
        a=x1;
        x1=x2;
        f1=f2;
        x2=a+(b-a)*F(n-k-2)/F(n-k-1);
        f2=f(x2);
        k=k+1
        end
    end



if f1<f2
   a=a;
   b=x2;
   x2=x1;
   f2=f1;
else f(x1)>=f(x2)
    b=b;
    a=x1;
end

x1=(b-a)/4+a;
f1=f(x1);
if f1<f2
     x=(a+x2)/2;
else f1>=f2
     x=(b+x2)/2;
end
    

 

fprintf('裵波那楔搜索的解是:\n');
x
fprintf('迭代次数是:\n');
n-1
    
    
 
    
     


 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -