matlab - 为什么 MATLAB 无法检查此三角表达式的相等性

标签 matlab symbolic-math

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

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

MATLAB 未返回正确答案。在比较符号表达式的相等性、比较字符串(即正则表达式的典型场景)或其他东西时,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

关于matlab - 为什么 MATLAB 无法检查此三角表达式的相等性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70779105/

相关文章:

matlab - 欧拉-拉格朗日方程的符号微分

java - Tomcat 和 Matlab 编译器运行时内存不足错误

matlab - 将 Matlab 函数结果缓存到文件

python - 将 Matlab 的 datenum 格式转换为 Python

python - 函数矩阵、SymPy 和 SciPy 的数值积分

matlab - 计算 36×36 矩阵的 Jordan 形式的解释错误

c++ - 来自 C++ 中拉格朗日/变分法的 ODE 求解器

python - 计算矩阵的 log2

matlab - 如何控制Matlab图中的颜色条颜色范围?

matlab - matlab中有什么办法让鼠标粘在曲线上吗?