# taylor_series
泰勒展开
函数库: TySymbolicMath
# 语法
T = taylor_series(f)
T = taylor_series(f,var)
T = taylor_series(f,var,a)
T = taylor_series(___;Order = 5, ExpansionPoint = 0, Ordermode = "absolute")
# 说明
T = taylor_series(f) 用泰勒级数在 0 点处对 f 进行泰勒展开到五阶,此时 taylor_series 的默认展开变量由 symvar(f,1) 决定。示例
T = taylor_series(f,var) 用泰勒级数在 0 点处对 f 进行泰勒展开到五阶,此时 taylor_series 的展开变量由 var 决定。示例
T = taylor_series(f,var,a) 用泰勒级数在 a 点处对 f 进行泰勒展开到五阶,此时 taylor_series 的展开变量由 var 决定。示例
T = taylor_series(___;Order = 5, ExpansionPoint = 0, Ordermode = "absolute") 除上述参数之外,在以上语法中的输入参数组合基础之上,还可以通过指定关键字参数的形式来指定泰勒级数的展开点、截断阶数或泰勒级数展开的阶数模式。示例
# 示例
求单变量表达式的麦克劳林级数
求指数函数、正弦函数和余弦函数的麦克劳林级数展开式直到五阶。
using TySymbolicMath
@variables x
T1 = taylor_series(exp(x))
T1 = 1 + x + (1//2)*(x^2) + (1//6)*(x^3) + (1//24)*(x^4) + (1//120)*(x^5)
T2 = taylor_series(sin(x))
T2 = x - (1//6)*(x^3) + (1//120)*(x^5)
T3 = taylor_series(cos(x))
T3 = 1 - (1//2)*(x^2) + (1//24)*(x^4)
指定扩展点
找出这些函数在 x=1 处的泰勒级数展开式。默认的扩展点是 0。要指定不同的扩展点,请使用 ExpansionPoint。
using TySymbolicMath
@variables x
T = taylor_series(log(x),x;ExpansionPoint=1)
T = -1 + x - (1//2)*((-1 + x)^2) + (1//3)*((-1 + x)^3) - (1//4)*((-1 + x)^4) + (1//5)*((-1 + x)^5)
或者,将扩展点指定为 taylor 的第三个参数。
T = taylor_series(acot(x),x,1)
T = 1.2853981633974483 - (1//2)*x + (1//4)*((-1 + x)^2) - (1//12)*((-1 + x)^3) + (1//40)*((-1 + x)^5)
指定截断阶
求 f = sin(x)/x 的 Maclaurin 级数展开。默认的截断顺序是 6。这个表达式的泰勒级数近似没有五次项,所以 taylor_series 用四次多项式近似这个表达式
using TySymbolicMath
using TyPlot
@variables x
f = sin(x)/exp(x);
T6 = taylor_series(f,x)
使用 Order 来控制截断顺序。例如,近似相同的表达式直到阶 7和阶 9。
T8 = taylor_series(f,x;Order=8)
T10 = taylor_series(f,x;Order=10)
绘制原始表达式 f 及其近似值 T6 , T8 , T10 。请注意,近似的准确性如何取决于截断顺序。
fplot([T6,T8,T10,f])
xlim([-5,5])
grid("on")
legend(["approximation of sin(x)/exp(x) with error O(x^6)","approximation of sin(x)/exp(x) with error O(x^8)",
"approximation of sin(x)/exp(x) with error O(x^{10})","sin(x)/exp(x)"];loc="best")
title("Taylor Series Expansion")

将截断模式指定为相对或绝对
求这个表达式的泰勒级数展开式。默认情况下, taylor 使用绝对顺序。
using TySymbolicMath
@variables x
T = taylor_series(1/exp(x) - exp(x) + 2*x,x,Order=5)
(-1//3)*(x^3)
用 OrderMode 求相对截断阶的泰勒级数展开式。对于某些表达式,相对截断顺序提供更精确的近似值。
T = taylor_series(1/exp(x) - exp(x) + 2*x,x;Order=5,Ordermode="relative")
T = -(1//3)*(x^3) - (1//60)*(x^5) - (1//2520)*(x^7)
求多元表达式的麦克劳林级数
求这个多元表达式的麦克劳林级数展开式。如果不指定变量向量,taylor 将 f 作为一个自变量的函数。
using TySymbolicMath
@variables x y z
f = sin(x) + cos(y) + exp(z)
T = taylor_series(f)
T = x + cos(y) + exp(z) - (1//6)*(x^3) + (1//120)*(x^5)
通过指定变量向量找到多元麦克劳林级数展开式。
f = sin(x) + cos(y) + exp(z);
T = taylor_series(f,[x,y,z])
T = 2 + x + z - (1//2)*(y^2) + (1//2)*(z^2) - (1//6)*(x^3) + (1//6)*(z^3) + (1//24)*(y^4) + (1//24)*(z^4) + (1//120)*(x^5) + (1//120)*(z^5)
求多元表达式的麦克劳林级数
通过指定变量向量和定义展开点的值向量来找到多元泰勒级数展开。
using TySymbolicMath
@variables x y z
f = y*exp(x - 1) - x*log(y);
T = taylor_series(f,[x,y],[1,1];Order=3)
T = x + (1//2)*((-1 + x)^2) + (1//2)*((-1 + y)^2)
如果将扩展点指定为标量 a ,则 taylor 将该标量转换为与变量向量相同长度的向量。展开向量的所有元素都等于 a 。
T = taylor_series(f,[x,y],1;Order=3)
T = x + (1//2)*((-1 + x)^2) + (1//2)*((-1 + y)^2)
# 输入参数
f - 输入函数符号函数 | 符号表达式 | 符号向量 | 符号矩阵 | 符号多维数组
输入指定为符号表达式或函数。它也可以是向量、矩阵或多维数组的符号表达式或函数。
var - 展开变量符号变量 | 符号向量
展开变量,指定为符号变量。如果你没有 指定 var ,则 taylor_series 使用 默认变量 symvar(f,1) 。
a - 展开点0(默认)| 标量 | 符号变量 | 符号函数 | 符号表达式
展开点,指定为数字或符号数字、变量、 函数或表达式。扩展点不能依赖于扩展 变量。还可以通过关键字参数 ExpansionPoint 指定扩展点。 如果您以两种方式指定展开点,则 ExpansionPoint 优先。
ExpansionPoint - 展开点0(默认)| 标量 | 符号变量 | 符号函数 | 符号表达式
展开点,指定为数字或符号数字、变量、 函数或表达式。扩展点不能依赖于扩展 变量。还可以通过关键字参数 ExpansionPoint 指定扩展点。 如果您以两种方式指定展开点,则 ExpansionPoint 优先。
Order - 泰勒级数展开的截断阶数6(默认) | 正整数
泰勒级数展开的截断阶数,指定为正整数。taylor_series 计算泰勒级数近似阶为 n - 1。截断顺序
Ordermode - 阶数模式"absolute"(默认)| "relative"
阶数模式,指定为 "absolute" 或 "relative" 。该参数用于指示是否在计算泰勒多项式时使用绝对或相对顺序近似的截断顺序。相对顺序 n 表示 var 在计算系列范围内首阶 m 至最高指数 m + n - 1 。这里 m + n 是展开变量 var 的
# 更多关于
泰勒级数展开
泰勒级数展开式表示解析函数 F (x) 是围绕着展开点 x = a 的无穷求和。
泰勒级数展开要求函数在展开点周围有无限阶的导数。
麦克劳林展开
泰勒级数的展开 x = 0 称为 Maclaurin 级数展开:
泰勒级数展开要求函数在展开点周围有无限阶的导数。
# 提示
- 如果同时使用第三个参数 a 和 ExpansionPoint 指定扩展点,然后 ExpansionPoint 优先;
- 如果 var 是向量,则扩展点 a 必须是一个标量或长度相同的向量 var 。如果 var 是一个向量 a 是一个标量,那么 a 展开为长度与 var 相同且所有元素相等的向量 a ;
- 如果膨胀点是正无穷或负无穷,则 taylor 计算洛朗级数展开,即 1/var 的幂级数。