maple - 具有多个变量的因子方程
问题描述
我有这个代码:
factor(sqrt((diff(theta, x1))^2+(diff(theta, y1))^2+(diff(theta, z1))^2));
这两个方程是相同的,但枫没有看到它(差异给了我一个可怕的方程......)。有没有办法让枫树能够分解第一个方程?
解决方案
当你写“这两个方程是相同的......”时,你似乎是在表明你认为它们在数学上是等价的。
那是错误的。
在所有未知数都是真实的假设下,Maple 可以将差异简化为零。
下面,我给出一个两个表达式不相等的反例。
在这里提供代码图像而不是纯文本代码是不好的礼仪。
restart;
with(VectorCalculus):
r1:=<x1,y1,z1>:
r2:=<x2,y2,z2>:
r3:=<x3,y3,z3>:
A:=r1 &x r2:
B:=r3 &x r2:
theta:=arccos(DotProduct(A,B)/(Norm(A)*Norm(B))):
sintheta1:=Norm(r1 &x r2)/(Norm(r1)*Norm(r2)):
expr1:=factor(sqrt((diff(theta, x1))^2+(diff(theta, y1))^2
+(diff(theta, z1))^2)):
lprint(expr1);
((x2^2+y2^2+z2^2)/(x1^2*y2^2+x1^2*z2^2-2*x1*x2*y1*y2-
2*x1*x2*z1*z2+x2^2*y1^2+x2^2*z1^2+y1^2*z2^2-
2*y1*y2*z1*z2+y2^2*z1^2))^(1/2)
expr2:=1/(Norm(r1)*sintheta1):
lprint(expr2);
(x2^2+y2^2+z2^2)^(1/2)/((y1*z2-y2*z1)^2
+(-x1*z2+x2*z1)^2+(x1*y2-x2*y1)^2)^(1/2)
现在,在所有未知数都是真实的假设下,
combine(expr2-expr1) assuming real;
0
现在,一个具有(某些特定)复数值的反例,
simplify(eval(expr2-expr1, [x1=I, x2=1, y1=0, y2=1, z1=0, z2=1]));
(1/2) (1/2)
-I 2 3
推荐阅读
- menu - 如何制作一个不占用自己空间的元素并通过覆盖它们来显示在其他元素之上
- javascript - 如何摆脱具有早期返回的多个嵌套 switchMap
- reactjs - 尽管我使用的是 prevState,但 SetTimeout 会改变我的状态
- python - python中的setup.py:如何安装子包?
- android - Android ContentResolver.openFileDescriptor() 抛出 java.lang.IllegalStateException: java.io.IOException: 无法编辑
- c - 添加动态分配打印地址而不是原始值的矩阵,为什么?
- python - 保存时xarray netcdf更改数据类型
- laravel - Laravel 中的多个 where 和 or 条件
- ruby-on-rails - 无法修改冻结的哈希 - rails 6 heroku
- python - 如何使用定义颜色的布尔属性绘制二维图表