TSC999 发表于 2021-11-6 10:01:03

有个含三次根式的复数算式,如何用 mathematica 化简?

本帖最后由 TSC999 于 2021-11-6 10:03 编辑

已知有三个复数算式如下图。它们都含有三次根式,能否用 mathematica将它们化简? (已知化简结果为三个互不相等的实数表达式)


zeroieme 发表于 2021-11-8 22:29:18

本帖最后由 zeroieme 于 2021-11-8 22:51 编辑

一眼看上去觉得是三次方程的根,果然mathematica也是这么认为的
(Power[-17-ISqrt,(3)^-1]+Power[-17+ISqrt,(3)^-1])/(9Power)//FullSimplify

Root

如果觉得三角函数比Root简单的,可以复数展开后分别简化
(Power[-17-ISqrt,(3)^-1]+Power[-17+ISqrt,(3)^-1])/(9Power)//ComplexExpand//Simplify]+I*FullSimplify]&
加上合并三角函数代码
(Power[-17-ISqrt,(3)^-1]+Power[-17+ISqrt,(3)^-1])/(9Power)//ComplexExpand//Simplify]+I*FullSimplify]&//{#,Level[#,\]//{Cases[#,Cos],Cases[#,Sin]}&//Flatten//({#->#[][\],\->#[]})&/@#&}&//{#[]/.#[],#[]//DeleteDuplicates}&//{Coefficient[#[],Sin[\]],Coefficient[#[],Cos[\]],#[[-1]]}&//rCos[\-\]/.{r->Sqrt[#[]^2+#[]^2],#[[-1,1]],\->ArcTan[#[],#[]]}&

当然用RootReduce之后套用三次方程的三角函数求根公式也行

TSC999 发表于 2021-11-9 12:21:56

本帖最后由 TSC999 于 2021-11-9 12:23 编辑

谢谢 2# 的大侠给出的化简程序。

有没有比下面更简单的三角函数和差化积程序?



上面的程序代码是:

1/9 Sqrt (Sqrt Sin/17]] +
       Cos/17]]) // {#,
      Level[#, \] // {Cases[#, Cos],
         Cases[#, Sin]} & //
      Flatten // ({# -> #[][\], \ -> #[]}) & /@ \
# &} & // {#[] /. #[], #[] //
      DeleteDuplicates} & // {Coefficient[#[], Sin[\]],
    Coefficient[#[], Cos[\]], #[[-1]]} & //
r Cos[\ - \] /. {r ->
   Sqrt[#[]^2 + #[]^2], #[[-1, 1]], \ ->
   ArcTan[#[], #[]]} &

zeroieme 发表于 2021-11-9 12:53:18

本帖最后由 zeroieme 于 2021-11-9 14:17 编辑

TSC999 发表于 2021-11-9 12:21
谢谢 2# 的大侠给出的化简程序。

有没有比下面更简单的三角函数和差化积程序?


我只是练练手。
最后我说了,作为三次方程的根,可以用RootReduce得到最小三次方程,使用求根公式的三角形式,就只有一个三角函数项。    https://baike.sogou.com/v7552105.htm



~~~~~~~~~~~~
((-17-I Sqrt)^(1/3)+(-17+I Sqrt)^(1/3))/(9 2^(1/3))//Function[{InputData},InputData//RootReduce//First//(#)&//If!=3,FullSimplify,CoefficientList[#,x]//Thread[{d,c,b,a}->#]&//Join[{\->2Sqrt,\->ArcCos[(-2 b^3+9a b c-27a^2 d)/(2(b^2-3a c)^(3/2))]}/.#,#]&//(3a)^-1 (\ Cos[{\,2\+\,4\+\}/3]-b)/.#&//Select[#,N[#]==N&]&//First]&]

TSC999 发表于 2021-11-9 13:55:37

本帖最后由 TSC999 于 2021-11-9 14:06 编辑

一元三次方程用三角函数方法解,这个我知道。现在抛开三次方程解法,只单纯说 1#楼的算式如何化简。

用以下指令化简如何?

Simplify@ComplexExpand[(
Power[-17 - I Sqrt, (3)^-1] + Power[-17 + I Sqrt, (
   3)^-1])/(9 Power)]   
TrigFactor (Sqrt Sin + Cos)] /.
x -> ArcTan/17]

上面的代码有个缺点,就是第二条语句是由第一条的结果来的。如果要消除这个缺点,就变成 2# 楼那样的代码,不过这个代码太长了,一时也难以读懂。有没有更好的办法?

zeroieme 发表于 2021-11-9 14:16:12

本帖最后由 zeroieme 于 2021-11-9 20:03 编辑

TSC999 发表于 2021-11-9 13:55
一元三次方程用三角函数方法解,这个我知道。现在抛开三次方程解法,只单纯说 1#楼的算式如何化简。

...

TrigFactor可以啊,我只是先用Cases抓出三角函数变成替换规则。


~~~~~~~~~~~~~~~~~~~~~~~~
(Power[-17-I Sqrt,(3)^-1]+Power[-17+I Sqrt,(3)^-1])/(9 Power)//ComplexExpand//Simplify@#&//(*三角函数捕抓段*){#,Level[#,\]//{Cases[#,Cos],Cases[#,Sin]}&//Flatten//#[]&//Union//MapIndexed[#1->Subscript[\, #2[]]&,#]&}&(*三角函数捕抓段*)//{#[]/.#[]//TrigFactor,Reverse/@#[]}&//#[]/.#[]&
页: [1]
查看完整版本: 有个含三次根式的复数算式,如何用 mathematica 化简?