当前位置: 首页 > news >正文

望城做网站找谁/抖音账号权重查询入口

望城做网站找谁,抖音账号权重查询入口,每日军事新闻下载安装,网站主页设计欣赏最速下降法定义:沿负梯度方向进行搜索的算法(负梯度方向为最速下降方向)优化问题:算法流程1.取 x0,令k0;2.求 xk 处 f(x) 的一个下降方向 dk ;3.一维搜索:, 4.否则,转步骤2;这里。 例题求解…

最速下降法

定义:沿负梯度方向进行搜索的算法(负梯度方向为最速下降方向)

优化问题:

6bbdd8618a6b8f739e363b8f71fe0937.png

算法流程

1.取  x0,令k=0;

2.求 xk  处  f(x)   的一个下降方向 dk ;

3.一维搜索:295516f957a73fc68a08725032f6965f.png

4.9ed989111eef36079d8f5779ed41a373.png

否则,转步骤2;

这里25c4548198e927f28e12c22c57408d39.png

例题求解:

1bc38a85cbd0be86860754d5e139cece.png

250b2e9e3929e6f59bfef5da61cc2cf1.png

1.实现最速梯度下降法MATLAB关键几点

1)建立符号表达式表达函数

建立函数表达式可以使用matlab中的符号变量和符号表达式功能。

如下示例,利用三种方式构造函数表达式x^2+x-2,并将其转换为多项式,求其根。

%构成符号表达式方法一:

fx = sym('x^2+x-2');% 利用sym('符号字符串')构成符号表达式

ployx = sym2poly(fx)% 转换成多项式

roots(ployx);% 原符号表达式转换为多项式后求根

ans =

-2

1

%构成符号表达式方法二:

syms x;%利用syms定义符号变量

fx = x^2+x-2;%利用已定义的符号变量组成符号表达式

polyx = sym2poly(fx);

roots(polyx)

ans =

-2

1

%构成符号表达式方法三:

fx = 'x^2+x-2';%利用单引号建立符号表达式,与之前定义有区别,实质上定义的是char类型

fx = sym(fx);%转换为真正意义的符号表达式

polyx = sym2poly(fx);

roots(polyx)

ans =

-2

1

注意两点:

a. 利用单引号生成的符号表达式建立的并不是真正意义上的符号表达式(sym类型),就是一个普通的字符串(char类型)。

如以下示例:

>> fx = 'x^2+x-2';

>> fy = sym('y^2+y-2');

>> whos

Name      Size            Bytes  Class    Attributes

fx        1x7                14  char

fy        1x1                60  sym

我们可以发现,利用单引号创建的符号表达式存贮为char类型,而不是sym类型。

因此使用单引号创建符号表达式时注意作用在其上函数的影响,要将其转换为真正符号表达式,如:

>> y = 'x^3+x^5'

y =

x^3+x^5

>> diff(y)     %计算结果明显错误

ans =

-26   -43    -8    77   -26   -41

>> diff(sym(y))   %先转换为符号表达式,再求微分,结果正确

ans =

5*x^4 + 3*x^2

b.符号表达式计算的结果必要时要转换为数值类型

例如,

>> syms x;

>> fx = x^2+x-2;

>> ret = solve(fx)

ret =

1

-2

>> whos ret

Name      Size            Bytes  Class    Attributes

ret       2x1                60  sym

>> ret = double(ret);%利用double函数将sym类型转换为数值类型

>> whos ret

Name      Size            Bytes  Class     Attributes

ret       2x1                16  double

这里利用solve函数返回的根,是符号变量,将它直接与数值类型计算时,将产生错误,利用double将其转换为数值类型。

2)求解函数的梯度,从而获取搜索方向

求解函数梯度需要利用gradient函数,代入某个位置,求具体点的梯度需要使用subs函数,示例如下:

>> syms x1 x2;

X = [x1;x2];

fx = x1-x2+2*x1^2+2*x1*x2+x2^2;

>> gradx = gradient(fx,X) %计算梯度函数

gradx =

4*x1 + 2*x2 + 1

2*x1 + 2*x2 - 1

>> ret = subs(gradx,X,[1 2])  %计算在点(1,2)处梯度

ret =

9

5

3)寻找最佳步长

最佳步长,需要求解方程:  step* = min f(x[k]+step*d[k]),其中x[k]表示当前位置,step表示步长,d[k]表示当前搜索方向,step*表示所求去的理想步长。

理想步长的求解,就是求解使上述方程取最小值的步长,可以通过求导函数的实数零点来获取。

这个地方需要使用符号变量和符号表达式的技巧,具体可参见代码清单2-2部分的函数getNextStep(fx,var,xk,dk) 。

4)精度控制问题

一方面利用精度控制迭代的过程的终止,另一方面如果你想观察计算过程也要控制精度。

如果没有控制精度,很有可能把正确的计算结果当成错误的结果。例如:

>> ft = sym('(44*t-2)^4+(92*t-6)^2');

>> ft_diff = diff(ft);%求导数

>> roots = solve(ft_diff)   %求导数方程的根

roots =

((493684489^(1/2)*2776680568306630656^(1/2))/2776680568306630656 + 115/10307264)^(1/3) - 529/(1405536*((493684489^(1/2)*2776680568306630656^(1/2))/2776680568306630656 + 115/10307264)^(1/3)) + 1/22

(3^(1/2)*(529/(1405536*((493684489^(1/2)*2776680568306630656^(1/2))/2776680568306630656 + 115/10307264)^(1/3)) + ((493684489^(1/2)*2776680568306630656^(1/2))/2776680568306630656 + 115/10307264)^(1/3))*i)/2 + 529/(2811072*((493684489^(1/2)*2776680568306630656^(1/2))/2776680568306630656 + 115/10307264)^(1/3)) - ((493684489^(1/2)*2776680568306630656^(1/2))/2776680568306630656 + 115/10307264)^(1/3)/2 + 1/22

529/(2811072*((493684489^(1/2)*2776680568306630656^(1/2))/2776680568306630656 + 115/10307264)^(1/3)) - (3^(1/2)*(529/(1405536*((493684489^(1/2)*2776680568306630656^(1/2))/2776680568306630656 + 115/10307264)^(1/3)) + ((493684489^(1/2)*2776680568306630656^(1/2))/2776680568306630656 + 115/10307264)^(1/3))*i)/2 - ((493684489^(1/2)*2776680568306630656^(1/2))/2776680568306630656 + 115/10307264)^(1/3)/2 + 1/22

>> roots = vpa(solve(ft_diff))   %控制位默认精度显示

roots =

0.0615348488488

0.0374143937574 + 0.0363735994416*i

0.0374143937574 - 0.0363735994416*i

>> size(roots)

ans =

3       1

代码实现:

后续补齐.........................

http://www.lbrq.cn/news/1532161.html

相关文章:

  • 织梦模板如何安装/福州短视频seo推荐
  • 网站建设经费方案/百度指数人群画像
  • 京东网站设计的特点/2023年新闻摘抄十条
  • 哈尔滨微网站建设/google推广技巧
  • 淳安县建设局网站/网络推广代理怎么做
  • 软件开发工具平台/seo是什么化学名称
  • 服务器做的网站怎么使用教程/网络营销的定义
  • php自己做网站访问量计算/谷歌浏览器网页
  • 阿里虚拟主机怎么做两个网站/网络推广深圳有效渠道
  • 沈阳建立网站/win10优化大师免费版
  • 做几个网站好/关键词网站排名软件
  • 网站建设拥有域名后如何操作/查看浏览过的历史记录百度
  • 一键生成app工具/seo外链建设的方法
  • 360doc 网站怎么做/长沙新媒体营销
  • 个旧网站建设/如何做seo搜索引擎优化
  • wordpress正体中文/百度seo排名主要看啥
  • 怎样把录的视频做一下传到网站/链接交易网
  • b2c电子商务团购网站建设/什么是搜索引擎营销
  • 做网站有什么用/每日新闻摘要30条
  • wordpress底部友情链接/深圳seo公司排名
  • vue做前台网站/做推广哪个平台好
  • logo设计说明模板100字/seo关键字优化教程
  • 网站建设用户登录/新手怎么学电商运营
  • 装饰网站的业务员都是怎么做的/seo优化服务商
  • java网站建设/平台app开发制作
  • 建设工程监理考试网站/seo英文怎么读
  • 网站utf8乱码/河北seo技术
  • 怎么做百度里面自己的网站/网站的网站建设
  • 重庆綦江网站制作公司电话/海外推广服务
  • wordpress图片alt属性/网站seo外包公司
  • 神经网络中 标量求导和向量求导
  • hadoop-3.3.6和hbase-2.4.13
  • WebSocket通信:sockjs与stomp.js的完美搭档
  • 【CS创世SD NAND征文】存储芯片在工业电表中的应用与技术演进
  • 虚拟机部署HDFS集群
  • J1939协议