簡體   English   中英

在 Python 中查找兩個函數的交集(Scipy,求根)

[英]Finding intersection of two functions in Python (Scipy, root finding)

所以我必須編寫一個代碼來找到兩個高斯函數 G1 與變量 (x,0,1) 和 g2 (x,1,2) 之間的交集。 我必須找到 x(-5,5) 內的所有交點如果我使用下面的代碼采用更簡單的公式,它可以工作,但像這樣它會給我錯誤。 我究竟做錯了什么? 謝謝

import numpy as np
from scipy.optimize import root
    
def g(x):
    return [(1/((2 * np.pi * 1**2)**0.5) * np.exp( - ( x[0] - 0 )**2 / ( 2 * 1**2))), 
            (1/((2 * np.pi * 2**2)**0.5) * np.exp( - ( x[0] - 1 )**2 / ( 2 * 2**2)))]
    
sol = root(g,[2],method='hybr')
    
sol.x

我改成這個並得到1.18作為解決方案。

import numpy as np
from scipy.optimize import root

def g(x):
    return [(1/((2 * np.pi * 1**2)**0.5) * np.exp( - ( x[0] - 0 )**2 / ( 2 * 1**2)))- (1/((2 * np.pi * 2**2)**0.5) * np.exp( - ( x[0] - 1 )**2 / ( 2 * 2**2)))]

sol = root(g,[2.0],method='hybr')
sol.x

編輯:下面允許多個起點。

import numpy as np
from scipy.optimize import root
from scipy.optimize import fsolve

def g(x):
    return (1/((2 * np.pi * 1**2)**0.5) * np.exp( - ( x - 0 )**2 / ( 2 * 1**2)))- (1/((2 * np.pi * 2**2)**0.5) * np.exp( - ( x - 1 )**2 / ( 2 * 2**2)))

sol = root(g,[-2.0,2],method='hybr')
sol.x

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM