先求得一個(gè)函數(shù)的導(dǎo)函數(shù),然后令導(dǎo)函數(shù)=0

專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)合山免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了1000多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
得到關(guān)于一個(gè)x的值
他也許是極大值
或是極小值
(還要考慮定義域進(jìn)行取舍),然后將所求的極值和兩個(gè)端點(diǎn)值帶入原函數(shù)進(jìn)行比較
,最后確定min
max就行
Sympy是python中非常強(qiáng)大的符號(hào)運(yùn)算庫,可以以書寫習(xí)慣表示數(shù)學(xué)表達(dá)式。下面介紹用Sympy求方程數(shù)值解的方法。
下面代碼全部在
from sympy import *
init_printing(use_unicode=True) # 按書寫習(xí)慣輸出
下運(yùn)行。
數(shù)學(xué)表達(dá)式的輸入
首先聲明符號(hào):
x = symbols('x')
即計(jì)算機(jī)中的變量x代表數(shù)學(xué)表達(dá)式中的x。在后文輸出中所有的x會(huì)顯示為x。如果x=symbols('x0'),則輸入的方程中所有x將在輸出中以x0表示。
如果需要希臘字母
l, r = symbol('lambda rho')
l, r將分別以λ,ρ表示。可以在一個(gè)表達(dá)式中同時(shí)聲明多個(gè)符號(hào)。
或者使用var()聲明:
var('x')
與上面等效。
聲明表達(dá)式:
f = (5/x)*(exp(x)-1)-exp(x)
此時(shí)若輸出f可以看到書寫習(xí)慣的表達(dá)式。由于表達(dá)式在markdown下顯示不正常,在此不放置示例。注意f的類型是class 'sympy.core.add.Add'
求f(x)=0數(shù)值解
因?yàn)橛械暮瘮?shù)零點(diǎn)不止一個(gè),因此在Sympy中解的輸出為一個(gè)list。使用solve(表達(dá)式,自變量符號(hào))可以解析地解方程:
s, = solve(f, x)
這里根據(jù)上面f的賦值,得到s為
LambertW(-5e**-5)+5
其中用了特殊函數(shù)表達(dá)。
我們需要求這個(gè)結(jié)果的數(shù)值近似,則輸出
s.evalf()
得到輸出
4.96511423174428
就是方程f(x)=0的數(shù)值解。
求給定自變量x值時(shí)函數(shù)f(x)的值 | 將表達(dá)式轉(zhuǎn)化為函數(shù)
f.evalf(subs = {x:4.96})
得到f(4.96)的數(shù)值
0.141885450782171
如果需要以計(jì)算機(jī)函數(shù)的形式定義函數(shù)f(x),則可以使用lambdify()進(jìn)行轉(zhuǎn)化:
f_func = lambdify(x, f)
之后可以調(diào)用
f_func(4.96)
輸出
0.141885450782
利用這個(gè)方法可以測試方程的數(shù)值算法,如使用sympy接口寫牛頓法等。
(1)由表中可知f(x)在(0,2]為減函數(shù),
[2,+∞)為增函數(shù),并且當(dāng)x=2時(shí),f(x)min=5.
(2)證明:設(shè)0<x1<x2≤2,
因?yàn)閒(x1)-f(x2)=2x1+
8
x1
-3-(2x2+
8
x2
-3)=2(x1-x2)+
8(x2?x1)
x1x2
=
2(x1?x2)(x1x2?4)
x1x2
,
因?yàn)?<x1<x2≤2,所以x1-x2<0,0<x1x2<4,即x1x2-4<0,
所以f(x1)-f(x2)>0,即f(x1)>f(x2),所以f(x)在(0,2]為減函數(shù).
(3)由(2)可證:函數(shù)f(x)=2x+
8
x
-3在區(qū)間(0,2]上單調(diào)遞減,在區(qū)間[2,+∞)上單調(diào)遞增.
則①當(dāng)0<a<2時(shí),(0,a]?(0,2],所以函數(shù)f(x)=2x+
8
x
-3在區(qū)間(0,a]上單調(diào)遞減,
故f(x)min=f(a)=2a+
8
a
-3.
②當(dāng)a≥2時(shí),函數(shù)f(x)=2x+
8
x
-3在區(qū)間(0,2]上單調(diào)遞減,[2,a]上單調(diào)遞增,
故f(x)min=f(2)=5.
綜上所述,函數(shù)f(x)=2x+
8
x
-3在區(qū)間(0,a]上的最小值為 g(a)=
2a+
8
a
?3,0<a<2
5,a≥2
分享文章:python求函數(shù)的值,如何用python計(jì)算函數(shù)的值
本文地址:http://chinadenli.net/article13/dsihdgs.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、靜態(tài)網(wǎng)站、搜索引擎優(yōu)化、服務(wù)器托管、電子商務(wù)、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)