精华内容
下载资源
问答
  • 最速下降法MATLAB程序

    2018-08-09 22:09:01
    机械工程专业,针对优化设计课程的最速下降法求某一函数的最小值
  • 最速下降法 MATLAB程序

    2009-08-03 12:31:22
    最速下降法的优点我就不说了,大伙都知道。。。希望大伙看看,,,,支持一下
  • function x = fxsteep(f,e,a,b)x1 = a;x2 = b;Q = fxhesson(f,x1,x2);x0 = [x1,x2]‘;temp = [x0];fx1 = diff(f,‘x1‘);fx2 = diff(f,‘x2‘);g = [fx1,fx2]‘;g1 = subs(g);d = - g1;while (abs(norm(g1))>...

    20180922154258944895.jpg

    20180922154259342371.jpg

    function x = fxsteep(f,e,a,b)

    x1 = a;

    x2 = b;

    Q = fxhesson(f,x1,x2);

    x0 = [x1,x2]‘;

    temp = [x0];

    fx1 = diff(f,‘x1‘);

    fx2 = diff(f,‘x2‘);

    g = [fx1,fx2]‘;

    g1 = subs(g);

    d = - g1;

    while (abs(norm(g1))> e)

    lamda = (-d)‘*d/((-d)‘*Q*d);

    x0 = x0 - lamda *g1;

    temp = [temp;x0];

    a = [1,0] * x0;

    b = [0,1] * x0;

    x1 = a;

    x2 = b;

    g1 = subs(g);

    d = - g1;

    end

    x = temp;

    end

    function Q = fxhesson(f,a,b)

    x1 = a;

    x2 = b;

    fx1 = diff(f,1,‘x1‘);

    fx2 = diff(f,1,‘x2‘);

    fx1x1 = diff(fx1,1,‘x1‘);

    fx1x2 = diff(fx1,1,‘x2‘);

    fx2x2 = diff(fx2,1,‘x2‘);

    fx2x1 = diff(fx2,1,‘x1‘);

    fx1x1 = subs(fx1x1);

    fx1x2 = subs(fx1x2);

    fx2x1 = subs(fx2x1);

    fx2x2 = subs(fx2x2);

    Q = [fx1x1,fx1x2;fx2x1,fx2x2];

    end

    syms x1 x2;

    X=[x1,x2];

    fx=X(1)^2+4*X(2)^2;

    z=fxsteep(fx,0.0001,1,1)

    ans

    1

    1

    48/65

    -3/65

    36/325

    36/325

    1728/21125

    -108/21125

    1296/105625

    1296/105625

    62208/6865625

    -3888/6865625

    46656/34328125

    46656/34328125

    2239488/2231328125

    -139968/2231328125

    1679616/11156640625

    1679616/11156640625

    80621568/725181640625

    -5038848/725181640625

    60466176/3625908203125

    60466176/3625908203125

    2902376448/235684033203125

    -181398528/235684033203125

    原文:http://www.cnblogs.com/Kermit-Li/p/4114372.html

    展开全文
  • 最速下降法matlab程序,很好用的。
  • 包含最速下降法MATLAB,并与其他方法进行比较。
  • 最速下降迭代又叫梯度下降迭代,是从一已知点出发,依照某种规则,求出相继点,取代原先的点,然后重复以上过程,得到点序列,以使其趋于最优解的迭代方法
  • 最速下降法 matlab

    2013-07-03 15:42:13
    程序可用于求解函数最值问题,是一个很好的比较通用的最速下降法算法程序
  • 最速梯度下降法,有详细的注释matlab程序 最速梯度下降法,有详细的注释matlab程序 最速梯度下降法,有详细的注释matlab程序 最速梯度下降法,有详细的注释matlab程序
  • 最速下降法PPT及MATLAB程序;最速下降法的基本思想;给定x0>0k=0;例. 用最速下降法求函数f (x1, x2)2x12+x22 的极小点,取x0=[1,1]T , =0.1;得;得;得;最速下降法的搜索路径呈直角锯齿形;改进后的算法
  • 黄金分割以为搜索程序: 1 function xmin = goldSearch(fun,a,b,eps) 2 % ---input 3 % fun 所求的目标函数 4 % a 区间的下界 5 % b 区间的上界 6 %eps 区间的最小阀值长度 7 % ---output 8...

      黄金分割法以为搜索法源程序:

     1 function xmin = goldSearch(fun,a,b,eps)
     2 % ---input
     3 % fun   所求的目标函数
     4 % a     区间的下界
     5 % b     区间的上界
     6 %eps    区间的最小阀值长度
     7 % ---output
     8 % xmin 函数取极小值时自变量的值
     9 x1 = a+0.382*(b-a);
    10 x2 = a +0.618*(b-a);
    11 f1 = fun(x1);
    12 f2 = fun(x2);
    13 while abs(b-a)>eps
    14     if f1>f2
    15         a = x1;
    16         x1 = x2;
    17         x2 = a +0.618*(b-a);
    18         f1 = f2;
    19         f2 = fun(x2);
    20     else
    21         b = x2;
    22         x2 = x1;
    23         x1 = a+0.382*(b-a);
    24         f2 = f1;
    25         f1 = fun(x1);
    26     end
    27 end
    28 xmin=(b+a)/2;
    29 fmin = fun(xmin)

     

      最速下降法源代码:

     1 function [feval,x] = gradientDescent(fun,gfun,x0,eps)
     2 % ---input
     3 % fun   所求的目标函数
     4 % gfun  目标函数的梯度导数
     5 % x0    初始值
     6 % ---output
     7 % feval 极小值
     8 % x     极小值处自变量的值
     9 
    10 syms u % 一维寻优中目标函数的自变量
    11 grad = gfun(x0);
    12 x = x0;
    13 while norm(grad)> eps
    14     goldfex = fun(x-u*grad); %表达式
    15     goldf = inline(goldfex); %将表达式转换成关于u的匿名函数
    16     lamda = goldSearch(goldf,0,0.3,0.1); %寻找最优步长
    17     x = x-lamda*grad
    18     grad = gfun(x);
    19     norm(grad);
    20     feval = fun(x)
    21 end
    22 feval = fun(x);

     

      测试如下:

     1 function main
     2 clear,clc
     3 % syms x1 x2
     4 % u = [x1,x2];
     5 % fexp = 2*u(1).^2+u(2).^2;
     6 % f = inline(fexp,'u');
     7 % gfexp = jacobian(fexp);
     8 % gf = inline(gfexp,'u');
     9 x0 =[10,10,10];
    10 [fmin,x] = gradientDescent(@f,@gf,x0,0.1)
    11 
    12 function y =gf(x) %目标函数f的梯度矩阵函数
    13 % y= [4*x(1),2*x(2)];
    14 syms x1 x2 x3
    15 fexp = f([x1,x2,x3]);
    16 gfexp = jacobian(fexp);
    17 gff = inline(gfexp,'x1','x2','x3');
    18 y =gff(x(1),x(2),x(3));
    19 % y = 2*cos(x);
    20 
    21 function y = f(x) %目标函数
    22 % y=2*x(1).^2+x(2).^2;
    23 y=x(1)^2+x(2)^2+x(3)^2-10*cos(2*pi*x(1))-10*cos(2*pi*x(2))-10*cos(2*pi*x(3));
    24 % y = 8+2*sin(x);

     

    转载于:https://www.cnblogs.com/lyfruit/archive/2013/01/06/2848426.html

    展开全文
  • 最速下降法matla程序

    2011-06-07 19:28:09
    最速下降法 matlab 优化算法 数值分析
  • 最速下降法--MATLAB程序

    千次阅读 2014-11-21 22:31:00
    function x = fxsteep(f,e,a,b)x1 = a;x2 = b;Q = fxhesson(f,x1,x2);x0 = [x1,x2]';temp = [x0];fx1 = diff(f,'x1');fx2 = diff(f,'x2');g = [fx1,fx2]';g1 = subs(g);d = - g1;while (abs(norm(g1))>...

    function x = fxsteep(f,e,a,b)
    x1 = a;
    x2 = b;
    Q = fxhesson(f,x1,x2);
    x0 = [x1,x2]';
    temp = [x0];
    fx1 = diff(f,'x1');
    fx2 = diff(f,'x2');
    g = [fx1,fx2]';
    g1 = subs(g);
    d = - g1;
    while (abs(norm(g1))> e)
    lamda = (-d)'*d/((-d)'*Q*d);
    x0 = x0 - lamda *g1;
    temp = [temp;x0];
    a = [1,0] * x0;
    b = [0,1] * x0;
    x1 = a;
    x2 = b;
    g1 = subs(g);
    d = - g1;
    end
    x = temp;
    end

     

    function Q = fxhesson(f,a,b)
    x1 = a;
    x2 = b;
    fx1 = diff(f,1,'x1');
    fx2 = diff(f,1,'x2');
    fx1x1 = diff(fx1,1,'x1');
    fx1x2 = diff(fx1,1,'x2');
    fx2x2 = diff(fx2,1,'x2');
    fx2x1 = diff(fx2,1,'x1');
    fx1x1 = subs(fx1x1);
    fx1x2 = subs(fx1x2);
    fx2x1 = subs(fx2x1);
    fx2x2 = subs(fx2x2);
    Q = [fx1x1,fx1x2;fx2x1,fx2x2];

    end

     

    syms x1 x2;
    X=[x1,x2];
    fx=X(1)^2+4*X(2)^2;
    z=fxsteep(fx,0.0001,1,1)

     

     

    ans

    1
    1
    48/65
    -3/65
    36/325
    36/325
    1728/21125
    -108/21125
    1296/105625
    1296/105625
    62208/6865625
    -3888/6865625
    46656/34328125
    46656/34328125
    2239488/2231328125
    -139968/2231328125
    1679616/11156640625
    1679616/11156640625
    80621568/725181640625
    -5038848/725181640625
    60466176/3625908203125
    60466176/3625908203125
    2902376448/235684033203125
    -181398528/235684033203125

     

    转载于:https://www.cnblogs.com/Kermit-Li/p/4114372.html

    展开全文
  • MATLAB最速下降法(梯度法)程序?查看文章?matlab最速下降法2010-08-18 17:13function x=fsxsteep(f,e,a,b)% fsxsteep函数 最速下降法% x=fsxsteep(f,e,a,b)为输入函数 f为函数 e为允许误差 (a,b)为初始点;% fsx TJPU ...

    MATLAB最速下降法(梯度法)程序

    ?查看文章?matlab最速下降法

    2010-08-18 17:13

    function x=fsxsteep(f,e,a,b)% fsxsteep函数 最速下降法% x=fsxsteep(f,e,a,b)为输入函数 f为函数 e为允许误差 (a,b)为初始点;

    % fsx TJPU 2008.6.15

    x1=a;x2=b;Q=fsxhesse(f,x1,x2);x0=[x1 x2]';fx1=diff(f,'x1'); %对x1求偏导数fx2=diff(f,'x2'); %对x2求偏导数g=[fx1 fx2]'; %梯度g1=subs(g); %把符号变量转为数值d=-g1;while (abs(norm(g1))>=e)t=(-d)'*d/((-d)'*Q*d);t=(-d)'*d/((-d)'*Q*d); %求搜索方向x0=x0-t*g1; %搜索到的点v=x0;a=[1 0]*x0;b=[0 1]*x0;x1=a;x2=b;g1=subs(g);d=-g1;end;x=v;

    function x=fsxhesse(f,a,b)% fsxhesse函数 求函数的hesse矩阵;% 本程序仅是简单的求二次函数的hesse矩阵!;% x=fsxhesse(f)为输入函数 f为二次函数 x1,x2为自变量;

    % fsx TJPU 2008.6.15

    x1=a;x2=b;fx=diff(f,'x1');???? %求f对x1偏导数fy=diff(f,'x2');???? %求f对x2偏导数fxx=diff(fx,'x1');?? %求二阶偏导数 对x1再对x1fxy=diff(fx,'x2');?? %求二阶偏导数 对x1再对x2fyx=diff(fy,'x1');?? %求二阶偏导数 对x2再对x1fyy=diff(fy,'x2');?? %求二阶偏导数 对x2再对x2fxx=subs(fxx);?????? %将符号变量转化为数值fxy=subs(fxy);fyx=subs(fyx);fyy=subs(fyy);x=[fxx,fxy;fyx,fyy]; %求hesse矩阵

    syms x1 x2;X=[x1,x2];fx=X(1)^2+2*X(2)^2;z=fsxsteep(fx,0.001,1,1)

    展开全文
  • 最速下降法求特征值matlab程序

    千次阅读 2017-07-27 22:02:40
    基本的特征值问题分为三类: 1、标准的线性特征值问题: Ax=λx,A∈Cn∗nAx = \lambda x,A \in {\mathbb C^{n*n}} 2、普遍的线性特征值问题: Ax=λBx,A、B∈Cn∗nAx = \lambda B x,A、B \in {\mathbb C^{n*n}...
  • 最速下降法程序

    2012-12-02 12:21:24
    matlab实现最速下降法例子fx=X(1)^2-10*cos(2*pi*X(1))+10+X(2)^2-10*cos(2*pi*X(2))+10+X(3)^2-10*cos(2*pi*X(3))+1
  • 优化方法:最速下降、阻尼牛顿、共轭梯度、BFGS matlab程序,以求解Rosen Brock函数极小值为例 程序有详细注释。
  • 内含最速下降法与共个梯度法的对比以及迭代收敛性分析文档 还有实验所用的源程序,其中最速下降法程序和共个梯度法程序都有源程序
  • 最速下降法,牛顿法和共轭梯度法,利用matlab程序解决实际问题
  • 针对最优化方法中最速下降法的锯齿现象的分析及优化并用matlab实现
  • PAGE / NUMPAGES 西京学院数学软件实验任务书 课程名称 数学软件实验 班级 数0901 For personal use only in study and research; not for commercial use 学号 07 姓名 For personal use only in study and ...
  • 最速下降法 (wolfe)

    2015-11-07 21:14:59
    Wolfe 条件下的最速下降法matlab程序
  • 供大家分享% Main program of steepest.% 最速下降法程序%----------------------These lines only for ploting figures%(前面几行是为了画图用的,可以不要)clearxx=-11:0.2:11; % 图中坐标的...
  • 我在看篇文章中作者的程序时,发现这段下面这段代码中需要自己手动输入梯度,我试着用matlab自带的求梯度函数改了一下,总数出现错误信息:输出项过多。想请教一下不可以让程序自己求梯度吗? 目标函数:...
  • 3. 单独的最速下降法BP程序:(traingdOnly.m) 4. 单独使用拟牛顿法BP程序:(trainbfgOnly.m) 绿色的为局部杂交预测的数据;红色带o的为GABP预测的数据;黑色的为原数据 学习的目的重在快乐,我分享,我快乐。...
  • 该软件模块对于那些需要在问题中计算最佳值的人非常有用。 该程序还生成了近似值/迭代的 JAVA/HTML 报告。
  • 我的思路是这样的: 最速下降法能找出全局最优点,但在接近最优点的区域内就会陷入“齿型”迭代中,使其每进行一步迭代都要花掉非常久的时间,这样长久的等待是无法忍受的,不信你就在我那个程序的第一步迭代中把...

空空如也

空空如也

1 2 3 4
收藏数 72
精华内容 28
关键字:

最速下降法matlab程序

matlab 订阅