24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2055  |  回复: 18
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

xxppyy

木虫 (小有名气)

[求助] 用 Mathematica 分解因式

请教:
       如何在实数(实代数数)范围内将整系数高次多项式分解为一次式与不可再分解的二次式的乘积?比如将 x^4+1 分解为 (x^2-√2 x+1)(x^2+√2 x+1)。以及类似地将有理分式分解为部分分式。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

walk1997

金虫 (著名写手)

5.2版本时 上面代码中有些命令不支持 下面这个可以在5.2上运行 你试试4.0
代码写的很笨  可能有很大空间可以优化 也许有极简单的内部命令完成 就是不清楚 哪个选项
只是计算简单 不讲究效率也可以....
--------------------------------
Clear["Global`*"]
f[x_] := x^7 + 2
t1 = x /. Solve[f[x] == 0, x];
t1 = DeleteCases[t1, x_ /; Element[x, Reals]];
t2 = x /. Solve[f[x] == 0, x];
t2 = Cases[t2, x_ /; Element[x, Reals]];
eq1 := {ComplexExpand[Im[t1[[j]]^2 - a*t1[[j]] + b]] == 0};
r1 = Table[Solve[eq1, a], {j, 1, Length[t1]}] // Flatten;
r1t = N[r1, 10];
r1 = Table[If[! MemberQ[Take[r1t, j - 1], r1t[[j]]],
r1[[j]], xxxx], {j, 1, Length[r1t]}];
r1 = DeleteCases[r1, xxxx];
(*r1 = DeleteDuplicates[r1]*)
eq2 := {ComplexExpand[Re[t1[[j]]^2 - a*t1[[j]] + b]] == 0};
r2 = Table[Solve[eq2, b], {j, 1, Length[t1]}] // Flatten;
(*r2 = DeleteDuplicates[r2]*)
r2t = N[r1, 10];
r2 = Table[If[!
    MemberQ[Take[
      r2t, j - 1], r2t[[j]]], r2[[j]], xxxx], {j, 1, Length[r2t]}];
r2 = DeleteCases[r2, xxxx];
r3 = Table[{r1[[j]], r2[[j]] /. r1[[j]]}, {j, 1, Length[r1]}];
ff1 = Table[temp1 = x^2 - a*x + b /. r3[[j]] // Expand; Print[temp1];
      temp1, {j, 1, Length[r3]}];
ff2 = Table[temp1 = x - t2[[j]]; Print[temp1];
      temp1, {j, 1, Length[t2]}];
ff = Join[ff1, ff2];
N[Apply[Times, ff], 20]
17楼2012-12-16 13:27:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 19 个回答

哇塞泡泡

新虫 (初入文坛)

【答案】应助回帖

感谢参与,应助指数 +1
楼主,你能给我发份mathematica软件包吗?我是初学者,但是目前还没找到资源。。。
水村山郭酒旗风
2楼2012-12-11 11:25:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

situxuming

新虫 (初入文坛)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
xxppyy: 金币+10, 有帮助 2012-12-13 14:54:36
Factor[x^4 + 1, Extension -> Sqrt[2]]

-(-1 + Sqrt[2] x - x^2) (1 + Sqrt[2] x + x^2)

多看看Factor一些函数Extension的选项
3楼2012-12-11 17:55:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

situxuming

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 哇塞泡泡 at 2012-12-11 11:25:31
楼主,你能给我发份mathematica软件包吗?我是初学者,但是目前还没找到资源。。。

http://tieba.baidu.com/p/2015697277这里有下载,百度网盘
4楼2012-12-11 17:57:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见