python求函数的值,如何用python计算函数的值

python如何实现求函数的在一个连续区间的最值?

先求得一个函数的导函数,然后令导函数=0

专注于为中小企业提供网站设计、成都做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业合山免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000多家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

得到关于一个x的值

他也许是极大值

或是极小值

(还要考虑定义域进行取舍),然后将所求的极值和两个端点值带入原函数进行比较

,最后确定min

max就行

python sympy 求表达式的值

Sympy是python中非常强大的符号运算库,可以以书写习惯表示数学表达式。下面介绍用Sympy求方程数值解的方法。

下面代码全部在

from sympy import *

init_printing(use_unicode=True) # 按书写习惯输出

下运行。

数学表达式的输入

首先声明符号:

x = symbols('x')

即计算机中的变量x代表数学表达式中的x。在后文输出中所有的x会显示为x。如果x=symbols('x0'),则输入的方程中所有x将在输出中以x0表示。

如果需要希腊字母

l, r = symbol('lambda rho')

l, r将分别以λ,ρ表示。可以在一个表达式中同时声明多个符号。

或者使用var()声明:

var('x')

与上面等效。

声明表达式:

f = (5/x)*(exp(x)-1)-exp(x)

此时若输出f可以看到书写习惯的表达式。由于表达式在markdown下显示不正常,在此不放置示例。注意f的类型是class 'sympy.core.add.Add'

求f(x)=0数值解

因为有的函数零点不止一个,因此在Sympy中解的输出为一个list。使用solve(表达式,自变量符号)可以解析地解方程:

s, = solve(f, x)

这里根据上面f的赋值,得到s为

LambertW(-5e**-5)+5

其中用了特殊函数表达。

我们需要求这个结果的数值近似,则输出

s.evalf()

得到输出

4.96511423174428

就是方程f(x)=0的数值解。

求给定自变量x值时函数f(x)的值 | 将表达式转化为函数

f.evalf(subs = {x:4.96})

得到f(4.96)的数值

0.141885450782171

如果需要以计算机函数的形式定义函数f(x),则可以使用lambdify()进行转化:

f_func = lambdify(x, f)

之后可以调用

f_func(4.96)

输出

0.141885450782

利用这个方法可以测试方程的数值算法,如使用sympy接口写牛顿法等。

在python中如何求解函数在定义域内的最大值?如f(x)=-2x^2-8x+3在[-5,5]区间内的最大值

(1)由表中可知f(x)在(0,2]为减函数,

[2,+∞)为增函数,并且当x=2时,f(x)min=5.

(2)证明:设0<x1<x2≤2,

因为f(x1)-f(x2)=2x1+

8

x1

-3-(2x2+

8

x2

-3)=2(x1-x2)+

8(x2?x1)

x1x2

=

2(x1?x2)(x1x2?4)

x1x2

因为0<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]为减函数.

(3)由(2)可证:函数f(x)=2x+

8

x

-3在区间(0,2]上单调递减,在区间[2,+∞)上单调递增.

则①当0<a<2时,(0,a]?(0,2],所以函数f(x)=2x+

8

x

-3在区间(0,a]上单调递减,

故f(x)min=f(a)=2a+

8

a

-3.

②当a≥2时,函数f(x)=2x+

8

x

-3在区间(0,2]上单调递减,[2,a]上单调递增,

故f(x)min=f(2)=5.

综上所述,函数f(x)=2x+

8

x

-3在区间(0,a]上的最小值为 g(a)=

2a+

8

a

?3,0<a<2

5,a≥2


当前文章:python求函数的值,如何用python计算函数的值
本文URL:http://scyanting.com/article/dsihdgs.html