LQ~~ 2021-09-24 08:23 采纳率: 100%
浏览 136
已结题

matlab中抛物线法求极值

img


img

  • 写回答

1条回答 默认 最新

  • 技术专家团-Joel 2021-09-24 09:22
    关注

    你好,以下代码供你参考,能注释的,都注释了

    clc; clear;
    x0 = 0;  x1 = 0.5;  x2 = 1;%初始区间,自己设置
    f=@(x) 3*x^2 - 2*tan(x);  %创建题目要求匿名函数,方便使用
    N = 100;  % 最多100次
    iter =1;    % 初始迭代步
    es = 1e-6;   % 误差
    e = 1;
    fprintf('迭代次数     x0        x1          x2       x(解)       f(最小值)     误差\n')
    for i = 1:N     % 迭代
        f0 = f(x0);     % 初始f0
        f1 = f(x1);     % f1
        f2 = f(x2);     % f2
        x3 = (f0*(x1^2-x2^2)+f1*(x2^2-x0^2)+f2*(x0^2-x1^2))/(2*f0*(x1-x2)+2*f1*(x2-...
            x0)+2*f2*(x0-x1));  % 二次插值迭代函数
        f3 = f(x3); % 计算f3
        if f3<f1    % 比较f3和f1大小
            e = abs(x3-x1);    % 误差
            x0 = x1;    % 设置新的左端x
            x1 = x3;    % 设置新的中间x
        else
            if f1<f3 && f3 < f2 && x3 < x2 && x3 > x1 %假如 f1 比 f3, 找到x3位置并看取代哪个
                x2 = x3; %用x3取代x2
            else
                if f1<f3 && f3 < f0 && x3 > x0 && x3 < x1 
                    x0=x3; % 用x3取代x0
                end
            end
        end
        fprintf('%6d\t%f\t%f\t%f\t%f\t%f\t%e\n', i, x0, x1, x2, x3, f3, e)%输出每一步迭代结果
        if e<es % 误差比较
            break   % 满足容差就结束
        end
    end
    

    结果输出

    迭代次数     x0        x1          x2       x(解)       f(最小值)     误差
         1    0.000000    0.500000    0.550323    0.550323    -0.318533    1.000000e+00
         2    0.500000    0.412041    0.550323    0.412041    -0.364786    8.795921e-02
         3    0.412041    0.378927    0.550323    0.378927    -0.365581    3.311424e-02
         4    0.378927    0.388860    0.550323    0.388860    -0.365810    9.933796e-03
         5    0.378927    0.388860    0.390133    0.390133    -0.365810    9.933796e-03
         6    0.388860    0.389493    0.390133    0.389493    -0.365810    6.329650e-04
         7    0.389493    0.389493    0.390133    0.389493    -0.365810    2.129880e-08
    

    可见到了第七次迭代,误差已经是2e-8,远小于设定的1e-6,可以结束
    答题不易,有用还请题主给个采纳支持一下答主哦

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月2日
  • 已采纳回答 9月24日
  • 修改了问题 9月24日
  • 创建了问题 9月24日

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 R语言卸载之后无法重装,显示电脑存在下载某些较大二进制文件行为,怎么办
  • ¥15 java 的protected权限 ,问题在注释里