|
|
本帖最后由 天山草 于 2016-11-11 18:10 编辑
又看了一下 3# 的解答,并不好,因为其中有人工干预。
下面这个做法好:
Solve[{Eliminate[{a5 (a4 + 2 a3) == 2288, a5 == a4 (a3 + 2 a2), a4 == a3 (a2 + 2 a1)}, {a4, a5}], a1 > 0, a2 > 0, a3 > 0}, {a1, a2, a3}, Integers]
运行结果与 3# 楼的相同:
{{a1->5,a2->1,a3->2}}
说明: Eliminate[{a5 (a4 + 2 a3) == 2288, a5 == a4 (a3 + 2 a2), a4 == a3 (a2 + 2 a1)}, {a4, a5}] 的意思是在所给的三个原始方程中,消去 a4 和 a5 两个变量,然后再求解。由程序自动消去 a4 和 a5 后得到的方程是
a1^2 a3^2 (8 a2 + 4 a3) + a1 a3^2 (8 a2^2 + 4 a2 a3 + 8 a2 + 4 a3) == -2 a2^3 a3^2 - a2^2 a3^3 - 4 a2^2 a3^2 - 2 a2 a3^3 + 2288。
运行过程中,没让显示出上述只含 a1、a2、a3 的方程。
如果要将消去 a4 和 a5 后的方程化简,可以用以下化简指令和因式分解指令:
Factor[Simplify[Eliminate[{a5 (a4 + 2 a3) == 2288, a5 == a4 (a3 + 2 a2), a4 == a3 (a2 + 2 a1)}, {a4, a5}]]]
运行结果是: a3^2 (2 a1+a2) (2 a1+a2+2) (2 a2+a3)==2288。这个方程跟陆教授手工化简的完全一样。
|
|