2017-07-14 148 views
-1

我無法說服楓樹來簡化複雜的trig表達式。它出現的瓶頸是,我不知道如何告訴楓樹,它的確定以簡化般的表情:如何使用maple簡化包含arccos和cos的trig表達式?

arccos(cos(x)) 

x 

相反,如果我發出:

simplify(arccos(cos(x))); 

我剛剛得到

arccos(cos(x)); 

是否有一套我應該使用的assume?我的實際表達式要複雜得多,所以我更喜歡一個通用的解決方案,其中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的表達有多簡單。但到目前爲止,我所有的假設嘗試(例如明確添加三角不等式,添加下面的宏觀部分答案等界限)並沒有產生任何效果。

回答

1

楓葉遵循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]); 

enter image description here

+0

這將工作,如果裏面COS表達很簡單。但是,假設cos內部的表達非常複雜。將不得不手動拉出來建立這個假設? –

+1

顯然這需要推論。你需要從某個地方開始,因爲你沒有明確指出我使用最簡單的一種情況。如果你想要另一個,那麼完整地指定它。你的問題是如此普遍,否則你實際提出的問題的答案需要「solve」命令的完整內部代碼作爲響應。你真的需要提供一個有代表性的例子。請注意,使用計算機代數系統和語言可以很容易地將參數提取出來。要拋出的東西(例如'solve'等)將取決於這個例子。顯示一個。 – acer

+0

到目前爲止,你的問題的數量是這樣的:在什麼情況下一般表達式會大於零而小於Pi? – acer