python实现五大基本算法语句_python实现各种最优化算法

python视频教程栏目介绍各种最优化算法

相关免费学习推荐:python视频教程

二分法

函数详见rres,此代码使该算法运行了两次def asdf(x):

rres=8*x**3-2*x**2-7*x+3

return rres

i=2

left=0

right=1

while i>0 :

i = i-1

ans = 0.1

mid1 = (left + right + ans) / 2

mid2 = (left + right - ans) / 2

a=asdf(mid1)

c=asdf(mid2)

if a > c :

right = mid1

else :

left = mid2

b=(left+right) / 2

print("左极限=%s,右极限=%s,极小值x=%s"%(left,right,b))左极限=0.45,右极限=0.775,极小值x=0.6125

收获:

这是我第一个实现的代码。学习完该算法以后,逻辑框架基本上就有了,剩下需要明确的就是对应的python的语言。于是我就开始了查找“如何定义函数”(详见mofan的优酷),“循环体”和“if条件语句”的格式(https://blog.csdn.net/qq_39407518/article/details/79822498)“数学符号”(详见mofan的优酷),以及print的使用

1.def是python中指定义,一般用来定义函数,如果需要深度学习搭建网络可用来定义网络。值得注意的一点是return必须要加在函数后面另起一行。

我不清楚为什么,但是如果没有加的话,那个函数公式就是一个花瓶,就像一个结果输不出去。

2.最坑的就是逻辑。一开始逻辑没理清楚,或者说在代码上有疏漏,导致我将left和right放在了循环体里,结果可想而知。不过也是因为这个错误,我知道pycharm中的debug怎么用,挺简单的,百度一下就出来了。

3.不知道什么原因,看的莫烦视频中的print多个变量一起输出是没有办法在我的pycharm中使用的,出来的结果很奇怪。可能是因为我是win10不是ios吧。print如果多个变量一起输出必须是print("名字:%s,名字2:%s"%(a,b))结果输出就是名字:a ,名字2:b

问题:1.为什么要加return?return的意思是输出这个def里面任意一个变量值作为结果显示。一般情况而言,是输出函数的关系式的命名,这样当你调用这个函数的时候,变量对应的函数值才能显示出来,否则只运行没有结果,不会有效果。

格点法——三点等分法import numpy as np

def qwer(x):

third = np.exp(x) - 5*x

return third

left = 1

right = 2

mid1 =float(left+right) / 2

mid2 = (left+mid1) / 2

mid3 = (mid1+right) /2

a = qwer(mid1)

b = qwer(mid2)

c = qwer(mid3)

i = 5

while i > 0:

i=i-1

if a > b:

if c > b :

#b

rig

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值