python中黄金分割法实现方法
本文实例讲述了python中黄金分割法实现方法。分享给大家供大家参考。具体实现方法如下:
''' a,b = bracket(f,xStart,h) Finds the brackets (a,b) of a minimum point of the user-supplied scalar function f(x). The search starts downhill from xStart with a step length h. x,fMin = search(f,a,b,tol=1.0e-6) Golden section method for determining x that minimizes the user-supplied scalar function f(x). The minimum must be bracketed in (a,b). ''' from math import log, ceil def bracket(f,x1,h): c = 1.618033989 f1 = f(x1) x2 = x1 + h; f2 = f(x2) # Determine downhill direction and change sign of h if needed if f2 > f1: h = -h x2 = x1 + h; f2 = f(x2) # Check if minimum between x1 - h and x1 + h if f2 > f1: return x2,x1 - h # Search loop for i in range (100): h = c*h x3 = x2 + h; f3 = f(x3) if f3 > f2: return x1,x3 x1 = x2; x2 = x3 f1 = f2; f2 = f3 print "Bracket did not find a mimimum" def search(f,a,b,tol=1.0e-9): nIter = int(ceil(-2.078087*log(tol/abs(b-a)))) # Eq. (10.4) R = 0.618033989 C = 1.0 - R # First telescoping x1 = R*a + C*b; x2 = C*a + R*b f1 = f(x1); f2 = f(x2) # Main loop for i in range(nIter): if f1 > f2: a = x1 x1 = x2; f1 = f2 x2 = C*a + R*b; f2 = f(x2) else: b = x2 x2 = x1; f2 = f1 x1 = R*a + C*b; f1 = f(x1) if f1 < f2: return x1,f1 else: return x2,f2
希望本文所述对大家的Python程序设计有所帮助。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

In Bezug auf das Problem der Entfernung des Python -Dolmetschers, das mit Linux -Systemen ausgestattet ist, werden viele Linux -Verteilungen den Python -Dolmetscher bei der Installation vorinstallieren, und verwendet den Paketmanager nicht ...

Wie kann man Go oder Rost verwenden, um Python -Skripte anzurufen, um eine echte parallele Ausführung zu erreichen? Vor kurzem habe ich Python verwendet ...

Über Pythonasyncio ...

Lösung für die Erkennung von Pylanztypen bei der Verwendung des benutzerdefinierten Dekorators in der Python -Programmierung ist Decorator ein leistungsstarkes Werkzeug, mit dem Zeilen hinzugefügt werden können ...

Vermeiden Sie doppelte Fortschrittsbalkenprobleme, die durch Druck in TQDM in Python verursacht werden, wenn Sie die TQDM -Bibliothek von Python verwenden, wenn Sie Druck in einer Schleife verwenden ...

Senden Sie HTTP/2 mit der HTTPX -Bibliothek von Python ...

Kompatibilitätsprobleme zwischen asynchronen Python -Bibliotheken in Python, asynchrones Programmieren ist zum Prozess der hohen Parallelität und der I/O geworden ...

Laden Sie die Gurkendatei in Python 3.6 Umgebungsfehler: ModulenotFoundError: Nomodulenamed ...
