# isAlways
确定所有变量值的符号条件是否为真
函数库: TySymbolicMath
# 语法
tf = isAlways(cond)
tf = isAlways(cond,Unknown)
# 说明
tf = isAlways(cond) 检查 cond 中的条件在数学上是否总是为真,并返回一个逻辑值数组。 isAlways 检查 cond 是否对 cond 中符号变量的所有可能值(包括对变量的所有假设)都成立。如果 cond 中的元素总是为真,那么 tf 中的相应元素就是逻辑 1(真)。否则,tf 中的相应元素就是逻辑 0(假)。
tf = isAlways(cond,Unknown) 返回选项指定的不可判定条件的输出结果。
# 示例
测试符号条件
检查不等式是否对其变量的所有值都为真。
using TySymbolicMath
@variables x
tf = isAlways(abs(x) >= 0)
tf = true
isAlways 返回逻辑 1(true),表示不等式 abs(x) >= 0 对所有 x 值均为真。 检查方程是否对其变量的所有值都为真。
tf = isAlways(sin(x)^2 + cos(x)^2 == 1)
tf = true
isAlways 返回逻辑 1(true),表示对于所有 x 值,等式 sin(x)^2 + cos(x)^2 == 1 都为真。
测试几个条件中是否有一个成立
检查两个条件中是否至少有一个为真。要检查多个条件中是否至少有一个为真,可使用逻辑运算符或或其快捷键 | 将它们组合起来。
using TySymbolicMath
@variables x
tf = isAlways((sin(x)^2 + cos(x)^2 == 1) | (x^2 > 0))
Warning: Unable to prove (x^2) > 0.
tf = true
检查两个条件是否都为真。要检查多个条件是否为真,可使用逻辑运算符 and 或其快捷键 & 将它们组合起来。
tf = isAlways((sin(x)^2 + cos(x)^2 == 1 )& (abs(x) > 2*abs(x)))
Warning: Unable to prove abs(x) > (2abs(x)).
tf=false
对于多个条件,也可以用符号数组来表示。
cond = [sin(x)^2 + cos(x)^2 == 1; abs(x) > 2*abs(x)]
cond=2-element Vector{Num}:
(sin(x)^2 + cos(x)^2) == 1
abs(x) > (2abs(x))
tf = isAlways(cond)
tf= 2-element BitVector:
1
0
处理不可判定条件的输出
当 isAlways 无法确定条件是否为真时,默认情况下会返回逻辑 0(假)并发出警告。
using TySymbolicMath
@variables x
tf = isAlways(2*x >= x)
Warning: Unable to prove (2x) >= x.
tf = false
要更改默认行为,请使用 Unknown 参数。例如,将 Unknown 指定为 "false",可以抑制警告,并使 isAlways 在无法确定条件是否为真的情况下返回逻辑 0(false)。
tf = isAlways(2*x >= x,"false")
tf=false
您也可以将 Unknown 指定为 "error "来返回错误,或指定为 "true "来返回逻辑 1(true),而不是 "false"。
# 输入参数
cond - 待检查的条件符号条件 | 符号条件向量 | 符号条件矩阵 | 符号条件多维数组
要检查的条件,指定为符号条件,或符号条件的向量、矩阵或多维数组。
Unknown - 返回不可判定条件的可选项"false" | "true" | "error"
不可判定条件的返回选项,指定为这些值之一:
| 条件选项 | 简介 |
|---|---|
| "false" | 对于无法判定的输入,返回逻辑 0(false)。 |
| "true" | 对于无法判定的输入,返回逻辑 1(true)。 |
| "error" | 对于无法判定的输入,返回 error 报错。 |