📄 main.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 + -