zoukankan      html  css  js  c++  java
  • 【MATLAB与机械设计】一维优化之牛顿法

    牛顿法在一维探索中的应用是利用二次函数来逐点近似原目标函数,以二次函数的极小点来近似原目标函数的极小点并逐渐逼近该点,是用切线代替弧线逐渐逼近函数根值的方法。
    在这里插入图片描述
    1.迭代步骤在这里插入图片描述
    2,程序框图:
    在这里插入图片描述
    3,MATLAB可执行程序

    clear; clc;
    %% 程序说明
    %{
    本函数为牛顿法求解一维函数的极小值
    其中f为所求的目标函数
    x0为初值
    exp为精度
    
    对于牛顿法有以下特点:
    1)、收敛速度快
    2)、对初值要求较高,即初值点应该距离极小值点较近
    
    %}
    %% 变量输入
    syms f x
    %目标函数
    f=(1/4)*(x^4)+(-2/3)*(x^3)+(-2)*(x^2)+(-7*x)+8;
    %初值
    x0=-12918;
    %精度
    exp=0.00005;
    %% 程序主体
    f_d1=diff(f,1);
    f_d2=diff(f,2);
    while 1
        fz_d1=subs(f_d1,x,x0);
        fz_d2=subs(f_d2,x,x0);
        if abs(fz_d1) < exp
            x_min=x0;
            break;
        else
            x0=x0-(fz_d1)/(fz_d2);
        end
    end
    x_min
    f_min=subs(f,x,x_min)
    
  • 相关阅读:
    if else配对问题
    未完
    c,c++,java格式总结
    c++笔记
    Vaadin
    J2msi 自己制作的把exe打成安装包简易GUI程序(第二版 带DLL注册)
    scala手动编译运行
    jframe去掉窗体
    jdk1.7
    vbox共享文件 挂载
  • 原文地址:https://www.cnblogs.com/mach-pupil/p/12624350.html
Copyright © 2011-2022 走看看