您好,登錄后才能下訂單哦!
本篇文章為大家展示了使用python怎么實現(xiàn)一個黃金分割法,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
Python是一種編程語言,內(nèi)置了許多有效的工具,Python幾乎無所不能,該語言通俗易懂、容易入門、功能強大,在許多領域中都有廣泛的應用,例如最熱門的大數(shù)據(jù)分析,人工智能,Web開發(fā)等。
使用黃金分割法來計算
#黃金分割法python求解PPT上第一個例題 #因為函數(shù)要求解最大值而這個方法一般求解最小值所以把函數(shù)取負 import numpy as np import matplotlib.pyplot as plt rate = 0.618034 def f(x): #求解體積函數(shù)公式,乘1.0將結(jié)果變?yōu)楦↑c數(shù) return -1.0*x*(350-2*x)*(260-2*x) def tarceback(f,a0,b0,accuracy): a = a0 b = b0 x2 = a+rate*(b-a) x1 = b-rate*(b-a) f1 = f(x1) f2 = f(x2) print(x1,x2) arr = search(f,a,b,x1,x2,f1,f2,accuracy) printFunc(f,a,b,arr[0],arr[1]) def search(f,a,b,x1,x2,f1,f2,accuracy): if f1<=f2: if x2-a<accuracy: print(x1,f1) return (x1,f1) else: b = x2 x2 = x1 f2 = f1 x1 = a+b-x2 f1 = f(x1) print(x1,x2) return search(f,a,b,x1,x2,f1,f2,accuracy) else: if b-x1<accuracy: print(x2,f2) return (x2,f2) else: a = x1 x1 = x2 f1 = f2 x2 = a+b-x1 f2 = f(x2) print(x1,x2) return search(f,a,b,x1,x2,f1,f2,accuracy) def printFunc(f,a,b,x,y): t = np.arange(a,b,0.01) s = f(t) plt.plot(t,s) plt.plot([x],[y],'ro') plt.plot([x,x],[y,0],'k--') plt.plot([0,x],[y,y],'k--') # plt.annotate(r'$(x,y)$',xy=(x,y)) plt.show() tarceback(f,0,130,0.05)
上述內(nèi)容就是使用python怎么實現(xiàn)一個黃金分割法,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。