2026a
# log2
符号输入的以 2 为底的对数
函数库: TySymbolicMath
# 语法
# 说明
Y = log2(X) 返回 X 的以 2 为底的对数, 满足
Y = log2(X, Val(1)) 返回 X 的以 2 为底的对数, 满足
F, E = log2(X, Val(2)) 返回尾数 F 和 指数 E, 满足
nargout 只能为 Val(1) 或 Val(2)。当 nargout 为 Val(1) 时,返回一个参数,当 nargout 为 Val(2) 时,返回两个参数。
# 示例
计算以 2 为底的对数
计算符号矩阵的每一元素的以 2 为底的对数。
using TySymbolicMath
using TyMath
@variables x
M = x*hilb(2)
log2.(M)
2×2 Matrix{Num}:
log2(x) log2(0.5x)
log2(0.5x) log2(0.333333x)
求符号表达式微分
求下列符号表达式微分:
using TySymbolicMath
@variables x
D = Differential(x)
expand_derivatives(D(log2(x^3)))
4.32808512266689 / x
绘制以 2 为底的对数函数
在区间 0 到 100 上绘制以 2 为底的对数函数图。
using TySymbolicMath
using TyPlot
@variables x
flog2 = x-> log2(x)
fplot(flog2,[0 100])
grid("on")
求符号输入以 2 为底的对数
在指定输出参数个数的情况下,求符号输入以 2 为底的对数。
using TySymbolicMath
y1 = log2(Num(4^(1/3)))
y2 = log2(Num(4^(1/3)), Val(1))
y1 = 0.6666666666666665
y2 = 0.6666666666666665
当输入为符号负数时
y = log2(Num(-3), Val(1))
y = 1.5849625007211563 + 4.532360141827193im
而此时 log2(Num(-3) 会报错。
当输入为符号表达式时
@variables x
ySym = log2(x^(1 / 3), Val(1))
ySym = 1.4426950408889634log(x^0.3333333333333333)
使用 substitute 函数将符号变量 x 替换为数字。
yVal = substitute(ySym, Dict(x => 4))
yVal = 0.6666666666666665
求以 2 为底的对数的尾数和指数
求输入 X 的以 2 为底的对数的尾数和指数。尾数 F 和指数 E 满足关系式
using TySymbolicMath
@variables a
X = [1 0.5 * 2^a 5 / 7]
F, E = log2(X, Val(2))
F = 1×3 Matrix{Num}:
1//2 0.25(2^(a - floor(-1.0 + a))) 0.714286
E = 1×3 Matrix{Num}:
1 1 + floor(-1.0 + a) 0
# 输入参数
X - 输入符号数 | 符号变量 | 符号表达式 | 符号函数 | 符号数组
输入,指定为符号数,符号变量,符号表达式,符号函数,符号数组。当指定输出参数个数时,即 nargout 为 Val(1) 或 Val(2) 时,X 才可以是负数或数组。
数据类型: Num
# 输出参数
Y - 以 2 为底的对数值符号数 | 符号表达式 | 符号数组
以 2 为底的对数值,指定为和 X 大小相同的符号数、符号表达式、符号数组。
数据类型: Num
F - 尾数值符号数 | 符号表达式 | 符号数组
尾数值,指定为和 X 大小相同的符号数、符号表达式、符号数组。F 和 E 中的值满足
数据类型: Num
E - 指数值符号数 | 符号表达式 | 符号数组
指数值,指定为和 X 大小相同的符号数、符号表达式、符号数组。F 和 E 中的值满足
数据类型: Num