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

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

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

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

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

Python中的fsolve 函數(shù)

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

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

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

這就是fsolve 的整個參數(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ù)的詳細解釋以及每個參數(shù)的含義。不過,我們將對這些參數(shù)進行簡要而又容易理解的總結(jié):

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

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

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

找出起點為-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) 。在第二個參數(shù)中,我們定義方程的起點。

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

代碼的輸出:

[-1.02986653]

解決一個起點為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ù)進行下一步,在一個叫做func 的方法中定義一個方程。

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

該代碼的輸出:

[6.49943036 1.09102209]

找出以0.3為起點的方程的根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)

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

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

代碼的輸出:

[1.57079633]

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

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

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

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

相關(guān)文章

最新評論