为什么MATLAB没有检查这个三角表达式的相等性



isequaln()正在测试符号对象的相等性,如文档中所述。但是,以下脚本的情况并非如此。

syms a
f1=cos(a)^2;
f2=1-sin(a)^2;
isequaln(f1,f2)
ans =
logical
0

MATLAB不会返回正确答案。当比较符号表达式的等式、比较字符串(即正则表达式的典型场景(或其他内容时,MATLAB会做什么?

在文档页面的底部,有一个名为"Tips";,其中包含以下项目:

isequaln(A,B)检查AB是否大小相同,并且它们的内容在语法上是否为相同的表达式,将NaN值视为相等。要检查数学比较A == B是否适用于AB中变量的所有值,请使用isAlways(A == B)

(强调矿(

isAlways做你想做的事:

syms a
f1 = cos(a)^2;
f2 = 1-sin(a)^2;
isAlways(f1 == f2)

从而输出CCD_ 10。


替代方案:

>> simplify(f1-f2)
ans =
0

>> simplify(f1==f2)
ans =
symtrue

相关内容

  • 没有找到相关文章

最新更新