为什么 MATLAB 无法检查此三角表达式的相等性
Why does MATLAB fail to check the equality of this trigonometric expression
isequaln()
正在测试符号对象是否相等,如文档中所述。但是,下面的脚本不是这样。
syms a
f1=cos(a)^2;
f2=1-sin(a)^2;
isequaln(f1,f2)
ans =
logical
0
MATLAB 没有 return 正确答案。在比较符号表达式的相等性、比较字符串(即正则表达式的典型场景)或其他东西时,MATLAB 做了什么?
在文档页面的底部,有一个名为“提示”的部分,其中包含以下项目:
isequaln(A,B)
checks if A
and B
are the same size and their contents are syntactically the same expression, treating NaN values as equal. To check whether the mathematical comparison A == B
holds for all values of variables in A
and B
, use isAlways(A == B)
.
(强调我的)
isAlways
为所欲为:
syms a
f1 = cos(a)^2;
f2 = 1-sin(a)^2;
isAlways(f1 == f2)
这输出 true
.
备选方案:
>> simplify(f1-f2)
ans =
0
>> simplify(f1==f2)
ans =
symtrue
isequaln()
正在测试符号对象是否相等,如文档中所述。但是,下面的脚本不是这样。
syms a
f1=cos(a)^2;
f2=1-sin(a)^2;
isequaln(f1,f2)
ans =
logical
0
MATLAB 没有 return 正确答案。在比较符号表达式的相等性、比较字符串(即正则表达式的典型场景)或其他东西时,MATLAB 做了什么?
在文档页面的底部,有一个名为“提示”的部分,其中包含以下项目:
isequaln(A,B)
checks ifA
andB
are the same size and their contents are syntactically the same expression, treating NaN values as equal. To check whether the mathematical comparisonA == B
holds for all values of variables inA
andB
, useisAlways(A == B)
.
(强调我的)
isAlways
为所欲为:
syms a
f1 = cos(a)^2;
f2 = 1-sin(a)^2;
isAlways(f1 == f2)
这输出 true
.
备选方案:
>> simplify(f1-f2)
ans =
0
>> simplify(f1==f2)
ans =
symtrue