欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在Python中使用Fsolve函數(shù)的過程解析

 更新時(shí)間:2023年06月15日 09:11:58   作者:火焰兔  
這篇文章主要介紹了在Python中使用Fsolve函數(shù)的過程解析,在這篇文章中,我們了解到fsolve?是用來尋找非線性方程的根的,了解到fsolve?可以接受的不同種類的參數(shù)以及每個(gè)參數(shù)的含義,需要的朋友可以參考下

本文將探討我們?nèi)绾卧赑ython中使用fsolve 來尋找一個(gè)解決方案。我們還將探討使用它的場景和一些示例代碼,以更好地理解如何以及何時(shí)使用它來達(dá)到某種結(jié)果。

讓我們首先了解什么是fsolve 以及為什么使用它。

Python中的fsolve 函數(shù)

方程是數(shù)據(jù)科學(xué)的根基,它們幫助數(shù)據(jù)科學(xué)家、數(shù)學(xué)家、化學(xué)工程師和醫(yī)生理解他們每天處理的各種情況?,F(xiàn)在,隨著計(jì)算機(jī)籠罩在我們的日常生活中,按順序解決基于大尺度的方程變得更加困難。

Python的fsolve ,使這些專業(yè)人士和其他人更容易使用Python庫提供的不同模塊來解決這些方程。fsolve 基本上是一個(gè)SciPy模塊,用于返回非線性方程的根。

fsolve 有各種參數(shù),為各種情況提供。這些可以很容易地直接從網(wǎng)上提供的SciPy文檔中找到。

這就是fsolve 的整個(gè)參數(shù)列表的樣子:

示例代碼:

scipy.optimize.fsolve (func, x0, args=(), fprime=None, full_output=0, col_deriv=0, xtol=1.49012e-08, maxfev=0, band=None, epsfcn=None, factor=100, diag=None)

你可以在SciPy文檔中找到所有參數(shù)的詳細(xì)解釋以及每個(gè)參數(shù)的含義。不過,我們將對這些參數(shù)進(jìn)行簡要而又容易理解的總結(jié):

參數(shù)說明
func, 可調(diào)用f(x, *args)這基本上是一個(gè)函數(shù)的描述,它接受一個(gè)或多個(gè)可能是向量的參數(shù),并返回一個(gè)與參數(shù)長度相同的值。
x0, ndarray這個(gè)參數(shù)標(biāo)志著函數(shù)f(x)=0 ,其根的初始估計(jì)值是什么。
args, tuple (可選)這些是該函數(shù)可能需要的任何額外參數(shù)。
fprime, 可調(diào)用f(x, *args) (可選)這是一個(gè)用于計(jì)算函數(shù)雅各布估計(jì)值的函數(shù),其導(dǎo)數(shù)跨越行。
full_output, bool (可選)如果條件滿足或?yàn)檎妫@將返回任何可選的輸出值。
col_deriv, bool (可選)通過這個(gè)參數(shù),你可以指定雅各布函數(shù)是否沿列計(jì)算導(dǎo)數(shù)。根據(jù)SciPy文檔,由于沒有轉(zhuǎn)置操作,這樣做會更快。
xtol, float (可選)這個(gè)參數(shù)將允許函數(shù)根據(jù)兩個(gè)連續(xù)迭代值之間相對誤差的最xtol ,終止計(jì)算。
maxfev, int (可選)這定義了對函數(shù)的最大調(diào)用次數(shù)。
band, tuple (可選)這是為fprime 被設(shè)置為None 。如果參數(shù)被設(shè)置為包含矩陣內(nèi)子對角線和超對角線數(shù)量的雙序列,那么雅可比矩陣被認(rèn)為是帶狀的。
epsfcn, float (可選)如果fprime 被設(shè)置為None ,該參數(shù)將包含雅各比矩陣前向差分的合適步長。如果epsfcn 小于機(jī)器精度,則假定函數(shù)的相對誤差為機(jī)器精度的順序。
factor, float (可選)這個(gè)參數(shù)決定了初始步長邊界,必須在(0.1, 100)之間。
diag, sequence (可選)這些N個(gè)正數(shù)項(xiàng)作為變量的比例因子。

在Python中使用fsolve 函數(shù)來尋找解決方案

現(xiàn)在你可能已經(jīng)知道了,fsolve 可以用于不同場景下的各種非線性方程。讓我們來探索一些簡單的代碼樣本,以更好地掌握fsolve 的使用方法:

找出起點(diǎn)為-0.2的方程的根x+2cos(x)

示例代碼:

from math import cos
import scipy.optimize
def func(x):
    y = x + 2*cos(x)
    return y
y = scipy.optimize.fsolve(func,0.2)
print (y)

在這段代碼中,我們從Python中龐大的math 庫中導(dǎo)入cos 函數(shù),從scipy (fsolve 的來源)導(dǎo)入optimize 。接下來,我們定義我們的方程,并將其存儲在func 方法的y 中。

在我們的方程被正確初始化后,我們只需使用fsolve 來調(diào)用包含方程的方法(func) 。在第二個(gè)參數(shù)中,我們定義方程的起點(diǎn)。

然后,結(jié)果被存儲在一個(gè)變量y ,打印輸出。

代碼的輸出:

[-1.02986653]

解決一個(gè)起點(diǎn)為0和2的方程

示例代碼:

from math import cos
import scipy.optimize
def func(x):
        y = [x[1]*x[0] - x[1] - 6, x[0]*cos(x[1]) - 3]
        return y
x0 = scipy.optimize.fsolve(func,[0, 2])
print(x0)

在這段代碼中,我們遵循與代碼 1 相同的步驟,從 Python 的math 和scipy 庫中導(dǎo)入cos 和scipy.optimize 。我們繼續(xù)進(jìn)行下一步,在一個(gè)叫做func 的方法中定義一個(gè)方程。

然后我們在fsolve 函數(shù)中調(diào)用這個(gè)方法作為參數(shù),并向它提供兩個(gè)起點(diǎn),0和2,然后將它們存儲并打印在一個(gè)叫做x0 的變量中。

該代碼的輸出:

[6.49943036 1.09102209]

找出以0.3為起點(diǎn)的方程的根4sin(y)-4

示例代碼:

from math import sin
import scipy.optimize
def func(y):
        x= 4*sin(y) - 4
        return x
x= scipy.optimize.fsolve(func,0.3)
print (x)

在這個(gè)示例代碼中,我們從math 庫中導(dǎo)入sin ,而不是cos 。代碼的結(jié)構(gòu)與上面的例子相同,我們還為fsolve 導(dǎo)入scipy.optimize ,然后在方法func 中定義一個(gè)方程。

我們把這個(gè)方法稱為fsolve 中的一個(gè)參數(shù),起點(diǎn)為0.3。得到的數(shù)值被儲存在變量x ,并打印輸出。

代碼的輸出:

[1.57079633]

在這篇文章中,我們了解到fsolve 是用來尋找非線性方程的根的,了解到fsolve 可以接受的不同種類的參數(shù)以及每個(gè)參數(shù)的含義。此外,我們經(jīng)歷了一些fsolve 的工作實(shí)例,研究了如何在你的代碼中使用它。

現(xiàn)在你已經(jīng)通過了理論和實(shí)際的代碼樣本,了解了fsolve 是如何用于推導(dǎo)解決方案的,現(xiàn)在是時(shí)候創(chuàng)建自己的代碼,進(jìn)一步探索fsolve 的工作原理了。

我們希望你覺得這篇文章對理解如何使用fsolve 來解決 Python 中的問題有幫助。

到此這篇關(guān)于在Python中使用Fsolve函數(shù)的過程解析的文章就介紹到這了,更多相關(guān)Python使用Fsolve內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Tensorflow訓(xùn)練MNIST手寫數(shù)字識別模型

    Tensorflow訓(xùn)練MNIST手寫數(shù)字識別模型

    這篇文章主要為大家詳細(xì)介紹了Tensorflow訓(xùn)練MNIST手寫數(shù)字識別模型,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • anaconda中安裝的python環(huán)境中沒有pip3的問題及解決

    anaconda中安裝的python環(huán)境中沒有pip3的問題及解決

    這篇文章主要介紹了anaconda中安裝的python環(huán)境中沒有pip3的問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 簡單了解python 郵件模塊的使用方法

    簡單了解python 郵件模塊的使用方法

    這篇文章主要介紹了簡單了解python 郵件模塊的使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python OpenCV實(shí)現(xiàn)基于模板的圖像拼接

    Python OpenCV實(shí)現(xiàn)基于模板的圖像拼接

    基于特征點(diǎn)的圖像拼接如果是多張圖,每次計(jì)算變換矩陣,都有誤差,最后可以圖像拼完就變形很大,基于模板的方法可以很好的解決這一問題,本文就來和大家具體聊聊
    2022-10-10
  • python持久化存儲文件操作方法

    python持久化存儲文件操作方法

    本文給大家分享python持久化存儲文件操作方法,給大家講解存儲文件的重要性,指針的基本概念及關(guān)閉文件的方法,介紹文件的創(chuàng)建和刪除技巧,感興趣的朋友一起看看吧
    2021-06-06
  • Pycharm中無法使用pip安裝的包問題解決方案

    Pycharm中無法使用pip安裝的包問題解決方案

    本文主要介紹了Pycharm中無法使用pip安裝的包問題解決方案,在終端通過pip裝好包以后,在pycharm中導(dǎo)入包時(shí),依然會報(bào)錯(cuò),下面就來介紹一下解決方法
    2023-09-09
  • Python+selenium破解拼圖驗(yàn)證碼的腳本

    Python+selenium破解拼圖驗(yàn)證碼的腳本

    很多網(wǎng)站在登錄或者注冊時(shí)都會遇到拼圖驗(yàn)證碼,這種拼圖驗(yàn)證碼實(shí)際上是多個(gè)小碎片經(jīng)過重新組合成的一張整體。本文將和大家分享一個(gè)基于Python selenium的破解拼圖驗(yàn)證碼的腳本,需要的可以參考一下
    2022-02-02
  • python 從list中隨機(jī)取值的方法

    python 從list中隨機(jī)取值的方法

    這篇文章主要介紹了python 從list中隨機(jī)取值的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Python Dict 到 Dataclass實(shí)現(xiàn)高效數(shù)據(jù)訪問與管理的兩種方式(推薦)

    Python Dict 到 Dataclass實(shí)現(xiàn)高效數(shù)據(jù)訪問與管理的兩種方式(推薦)

    本文介紹了Python中的字典和DataClass兩種數(shù)據(jù)結(jié)構(gòu),并探討了如何將字典轉(zhuǎn)換為DataClass,字典適用于鍵值對存儲,感興趣的朋友一起看看吧
    2024-12-12
  • Python微信企業(yè)號開發(fā)之回調(diào)模式接收微信端客戶端發(fā)送消息及被動返回消息示例

    Python微信企業(yè)號開發(fā)之回調(diào)模式接收微信端客戶端發(fā)送消息及被動返回消息示例

    這篇文章主要介紹了Python微信企業(yè)號開發(fā)之回調(diào)模式接收微信端客戶端發(fā)送消息及被動返回消息的方法,涉及Python微信企業(yè)號回調(diào)模式消息響應(yīng)機(jī)制相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08

最新評論