【问题标题】:How to use maple to simplify trig expressions involving arccos and cos?如何使用 maple 简化涉及 arccos 和 cos 的三角表达式?
【发布时间】:2017-07-14 14:41:54
【问题描述】:

我无法说服 maple 简化复杂的三角表达式。看来瓶颈是我不知道如何告诉 maple 可以简化如下表达式:

arccos(cos(x))

进入

x

相反,如果我发出:

simplify(arccos(cos(x)));

我刚刚得到

arccos(cos(x));

我应该使用一些assumes 吗?我的实际表达式要复杂得多,所以我更喜欢一个通用的解决方案,其中 arccos 和 cos 中的表达式可能都是复杂的表达式。

更新:

这是更复杂的simplify 示例(或者至少我认为这是问题所在):

# Angles
hac := arccos( (lab^2 + lbc^2 - lca^2)/(2*lab*lbc) ):
hcd := arccos( (lbc^2 + lbd^2 - lcd^2)/(2*lbc*lbd) ):
had := hac+hcd:
# length of AD
lad := sqrt( lab^2 + lbd^2 - 2*lab*lbd*cos(had) ):
sin_hbd := lbd*sin(had)/lad:
sin_hbp := sin_hbd:         
hbp := arcsin( sin_hbp ):
hap := hac:
hab := Pi - hbp - hap:
# length of BP
lbp := lab*sin_hbp/sin(hab):
# factor we're looking for
s := lbp/lbc:
simplify(s);

产生:

                                           lab lbd sin(%2)
   -----------------------------------------------------------------------------------------------
       2      2                     1/2                        lbd sin(%2)
   (lab  + lbd  - 2 lab lbd cos(%2))    sin(arcsin(------------------------------------) + %1) lbc
                                                       2      2                     1/2
                                                   (lab  + lbd  - 2 lab lbd cos(%2))

                                                   2      2      2
                                                lab  + lbc  - lca
                                   %1 := arccos(------------------)
                                                    2 lab lbc

                                                     2      2      2
                                                  lbc  + lbd  - lcd
                                %2 := %1 + arccos(------------------)
                                                      2 lbc lbd

符号lab,lbc,lca 是三角形的长度。同样lab,lbd,lcd。所以角度h* 应该都在 0 和 Pi 之间。我不确定先验s 的表达式有多简单。但到目前为止,我所有的假设尝试(例如,明确添加三角形不等式,添加像下面宏基的部分答案这样的边界)都没有效果。

【问题讨论】:

    标签: trigonometry symbolic-math maple simplification


    【解决方案1】:

    Maple 遵循 arccos 的 principal value 的通常约定。

    x[0,Pi] 相同的假设下,您可以将arccos(cos(x)) 简化为x

    simplify(arccos(cos(x))) assuming x>=0, x<=Pi;
    
                          x
    
    plot(arccos(x),x=-1..1,tickmarks=[default,piticks]);
    

    【讨论】:

    • 如果 cos 中的表达式很简单,这将起作用。但是假设cos里面的表达式很复杂。是否必须手动将其拉出以建立此假设?
    • 显然这需要推理。您需要从某个地方开始,因为您没有费心明确指定条件,所以我使用了最简单的条件。如果您想要另一个,请完整指定它。您的问题是如此笼统,否则您实际询问的问题的答案需要solve 命令的完整内部代码作为响应。你真的需要提供一个有代表性的例子。请注意,使用计算机代数系统和语言很容易将参数提取到任何 cos 调用中。将其扔给什么(例如solve 等)将取决于示例。显示一个。
    • 到目前为止,您的问题类似于:在什么条件下,一般表达式会大于零且小于 Pi?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多