大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
求函数的零点有以下三种方法
站在用户的角度思考问题,与客户深入沟通,找到上党网站设计与上党网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:做网站、网站制作、企业官网、英文网站、手机端网站、网站推广、域名申请、网络空间、企业邮箱。业务覆盖上党地区。
以适当的方式对函数加以变形(形如x2+5x+4)。高次项(如x2)在前、低次项在后逐一从左向右降次排列,直到常数项(形如8或4)。在最后一项后面加上等于号和数字0。
排列正确的多项式:
x2 + 5x + 6 = 0
x2 - 2x – 3 = 0
排列错误的多项式:
5x + 6 = -x2
x2 = 2x + 3
用a, b, c等字母表示方程系数。这一步不需要数学知识,仅通过一定的表达方式为后续的因式分解降低难度。你尝试解决的方程拥有一般形式。对于以上方程,一般形式为ax2 ± bx ± c = 0。只需要在你排列完毕的方程里找到对应三个字母的数字(系数)即可。例如:
x2 + 5x + 6 = 0
a = 1 (no number in front of "x" = 1, as there is still one "x")
b = 5
c = 6
x2 - 2x – 3 = 0
a = 1 (no number in front of "x" = 1, as there is still one "x")
b = -2
c = -3
写下常数项c的所有因数对。某数的因数对指相乘结果等于该数的两个数。写因数对时特别注意负数,两个负数相乘等于正数。因数对中两个数的顺序没有严格要求(即1×4与4×1等价)。
例:方程 x2 + 5x + 6 = 0中常数项6的因数对有:
1 x 6 = 6
-1 x -6 = 6
2 x 3 = 6
-2 x -3 = 6
求函数的零点有两种情况:一种是函数如果比较简单,就令函数等于0,然后解方程就行了。另外一种是函数比较复杂,就要对函数进行转化,变形,或借助于图形。。
对于在区间[a,b]上连续不断、且f(a)·f(b)<0的函数y=f(x),通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值。
步骤
(1)确定区间[a,b],验证f(a)f(b)<0,给定精确度ε;
(2)求区间(a,b)的中点x1;
(3)计算f(x1);
1)若f(x1)=0,则x1就是函数的零点;
2)若f(a)·f(x1)<0,则令b=x1(此时零点x0∈(a,x1));
3)若f(b)·f(x1)<0,则令a=x1(此时零点x0∈(x1,b))。
(4)判断是否达到精确度ε:即若|a-b|<ε,则得到零点的近似值a(或b);否则重复2~4。
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接口写牛顿法等。
函数零点的求法:确定区间[a,b],验证f(a)·f(b)0,给定精确度ε;(2)求区间(a,b)的中点x1;(3)计算f(x1),若f(x1)=0,则x1就是函数的零点。
函数零点有一个简易判断法:对于连续函数f(x)若有f(a)*f(b)0(设a判断零点个数的题一般有三种方法,一种是计算f(a)*f(b),通过收缩区间来确定零点具体位置,避免区间过大同时包含几个零点;另一种是画出大概的图像;第三种是借助导函数的符号来判断函数的单调性,进而确定零点