факторное уравнение с несколькими переменными - PullRequest
0 голосов
/ 23 декабря 2018

У меня есть этот код:

enter image description here

factor(sqrt((diff(theta, x1))^2+(diff(theta, y1))^2+(diff(theta, z1))^2));

enter image description here

enter image description here enter image description here

Два уравнения идентичны, но клен не видит этого (разница дает мне ужасное уравнение ...).Есть ли у клена способ де-факторизовать первое уравнение?

1 Ответ

0 голосов
/ 23 декабря 2018

Когда вы пишете «Два уравнения являются идентичными ...», вы, кажется, указываете, что считаете, что они математически эквивалентны.

Это неверно.

Согласно предположениямчто все неизвестные действительны, 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  
...