首页 > 其他分享 >工程数学1

工程数学1

时间:2023-06-11 10:35:20浏览次数:31  
标签:0.618 %. 工程 0.2325 数学 x2 x1 0.382

实验一:一维寻优法(0.618 法)程序设计

 

一、实验目的

通过一维寻优黄金分割法的程序设计,培养学生计算机的应用能力,并为今后无约束优化方法的学习和编程,奠定基础;掌握缩小寻优区间的黄金分割法。

 

二、实验内容

1)请用0.618 法求解优化问题: min f (x) = x^2 − sin(x) 在区间[0,1]上的极小点和极小值;

(2)根据0.618 法算法步骤编写Matlab 的程序实现0.618 搜索法;

(3)要求输出内容包括:极小点、极小值、每次迭代的a、b、al、ak 的值;

(4)按照模板撰写实验报告,要求规范整洁。

 

  

 

三、算法步骤、代码、及结果

   1. 算法步骤

    步骤1:置初始区间[a,b],给定待优化函数,置精度要求eps,计算左右试探点x1=a+0.382*(b-a),x2=a+0.618*(b-a)及相应的函数值f(x1), f(x2)

步骤2:如果a-b<eps, 输出最优解a+b/2, 终止, 否则进入步骤3

步骤3:置k=k+1,计算x1=a+0.382*(b-a),x2=a+0.618*(b-a)

步骤4:如果 f(x1)>f(x2) 置a=x1,b=b 否则,置a=a,b=x2; 转步骤2

 

   2. 代码

golds.m:

function[] = goldmin()

% 黄金分割法求解函数最小值

% 输入

% f 待优化函数

% a,b 区间

% eps 精度

% 输出

% 每次迭代的 k次数 a、b、al 、ak 的值

% x 最优解

%%

clear;

format short

f=input('请输入函数表达式:f = ');

a = input('请输入区间左端点a的值:');

b = input('请输入区间右端点b的值:');

eps= input('请输入运算精度:');   

k=0;

x1=a+0.382*(b-a);

x2=a+0.618*(b-a);

fprintf(' k          [a,b]          x1        x2        f(x1)       f(x2)\n ');

fprintf('%d      [%.3f,%.3f]    %.3f     %.3f     %.4f      %.4f\n', k,a,b,x1,x2,f(x1),f(x2));

while abs(a-b)>eps

    k=k+1;

    x1=a+0.382*(b-a);

    x2=a+0.618*(b-a);

    if  f(x1)>f(x2)

        a=x1;

        b=b;

    elseif  f(x1)<=f(x2)

        a=a;

        b=x2;

    end

   fprintf(' %d      [%.3f,%.3f]    %.3f     %.3f     %.4f      %.4f\n', k,a,b,x1,x2,f(x1),f(x2));

end

fprintf('经过%d次迭代,可取%.3f作为近似最优解',k,(a+b)/2);

 

 

 

  1. 结果

golds();

请输入函数表达式:f = @(x) x^2-sin(x);

请输入区间左端点a的值:0

请输入区间右端点b的值:1

请输入运算精度:0.001

 k          [a,b]          x1        x2        f(x1)       f(x2)

 0      [0.000,1.000]    0.382     0.618     -0.2269      -0.1975

 1      [0.000,0.618]    0.382     0.618     -0.2269      -0.1975

 2      [0.236,0.618]    0.236     0.382     -0.1782      -0.2268

 3      [0.382,0.618]    0.382     0.472     -0.2268      -0.2319

 4      [0.382,0.528]    0.472     0.528     -0.2319      -0.2251

 5      [0.382,0.472]    0.438     0.472     -0.2323      -0.2319

 6      [0.416,0.472]    0.416     0.438     -0.2311      -0.2323

 7      [0.438,0.472]    0.438     0.451     -0.2323      -0.2325

 8      [0.438,0.459]    0.451     0.459     -0.2325      -0.2324

 9      [0.446,0.459]    0.446     0.451     -0.2324      -0.2325

 10      [0.446,0.454]    0.451     0.454     -0.2325      -0.2324

 11      [0.449,0.454]    0.449     0.451     -0.2325      -0.2325

 12      [0.449,0.452]    0.451     0.452     -0.2325      -0.2325

 13      [0.449,0.451]    0.450     0.451     -0.2325      -0.2325

 14      [0.450,0.451]    0.450     0.450     -0.2325      -0.2325

 15      [0.450,0.450]    0.450     0.450     -0.2325      -0.2325

经过15次迭代,可取0.450作为近似最优解

 

标签:0.618,%.,工程,0.2325,数学,x2,x1,0.382
From: https://www.cnblogs.com/fuchuchu/p/17472578.html

相关文章

  • 工程数学3
    实验三:Newton法程序设计 一、实验目的掌握 Hesse 矩阵的计算方法和 Newton 法的基本思想及其迭代步骤;学会运用 MATLAB 编程实现常用优化算法;能够正确处理实验数据和分析实验结果及调试程序二、实验内容(1)求解无约束优化问题(2)终止准则取(3)完成 Newton 法(牛顿法)的 M......
  • 工程数学2
    实验二:最速下降法程序设计 一、实验目的通过最速下降法的程序设计,为今后的约束优化方法的学习和编程奠定基础;掌握负梯度方向的定义和最速下降法的迭代公式 ;通过此次实验,进一步巩固最速下降法的基本原理和思想。 二、实验内容   (1)求解无约束优化问题:(2)终止准则取(3)完......
  • 工程数学5
    实验五:MATLAB最优化工具箱的使用 一、实验目的通过一个农业生产计划优化安排的实例求解,培养学生解决实际线性规划问题的初步能力;熟悉线性规划的建模过程;掌握 Matlab 优化工具箱中线性规划函数的调用。通过一个投资组合优化问题的实例求解,培养学生解决实际二次规划问题的初......
  • 工程数学4
    实验四:共轭梯度法程序设计 一、实验目的掌握共轭梯度法的基本思想及其迭代步骤;学会运用 MATLAB 编程实现常用优化算法;能够正确处理实验数据和分析实验结果及调试程序。 二、实验内容(1)求解无约束优化问题:(2)终止准则取 ,搜索方法采用非精确搜索 Armijo;(3)完成 FR 共轭......
  • 工程数学上机5
    实验五:MATLAB最优化工具箱的使用一、实验目的通过一个农业生产计划优化安排的实例求解,培养学生解决实际线性规划问题的初步能力;熟悉线性规划的建模过程;掌握Matlab优化工具箱中线性规划函数的调用。 二、实验内容某村计划在100公顷的土地上种植a、b 、c 三种农作物......
  • 工程数学上机1
    实验一:一维寻优法(0.618法)程序设计一、实验目的通过一维寻优黄金分割法的程序设计,培养学生计算机的应用能力,并为今后无约束优化方法的学习和编程,奠定基础;掌握缩小寻优区间的黄金分割法。  二、实验内容(1) 请用0.618法求解优化问题:min f (x)=x2 −sin(x)......
  • 工程数学上机2
    实验二:最速下降法程序设计一、实验目的通过最速下降法的程序设计,为今后的约束优化方法的学习和编程奠定基础;掌握负梯度方向的定义和最速下降法的迭代公式;通过此次实验,进一步巩固最速下降法的基本 原理和思想。 二、实验内容(1)求解无约束优化问题:;(2)终止准则取;(3)......
  • 工程数学上机3
    实验三:Newton法程序设计一、实验目的掌握Hesse 矩阵的计算方法和Newton法的基本思想及其迭代步骤;学会运用MATLAB编程实现 常用优化算法; 能够正确处理实验数据和分析实验结果及调试程序。  二、实验内容(1)求解无约束优化问题:;(2)终止准则取;(3)完成Newton 法......
  • 工程数学上机4
    实验四:共轭梯度法程序设计一、实验目的掌握共轭梯度法的基本思想及其迭代步骤;学会运用MATLAB编程实现常用优化算法;能够正 确处理实验数据和分析实验结果及调试程序。 二、实验内容(1)求解无约束优化问题:;(2)终止准则取,搜索方法采用非精确搜索 Armijo;(3)完成FR共......
  • 数学公式:点到直线的距离
    求点到直线的距离,点P(a,b),直线l为Ax+By+C=0过P点作垂直于l的直线m\[l的点斜式为\\y=-\frac{A}{B}x-\frac{C}{B}\\x=-\frac{B}{A}y-\frac{C}{A}\\求垂直斜率,通过斜率相乘得-1求得。k=\frac{B}{A}\\则m的点斜式方程为\\y=\frac{B}{A}(x-a)+b......