5 方程
一元方程
用 solve(eqn, x)
求解关于未知数
x
x
x 的一元方程.
(%i1) eq1: a*x^2 + b*x + c =0;
2
(%o1) a x + b x + c = 0
(%i2) solve(eq1, x);
2 2
sqrt(b - 4 a c) + b sqrt(b - 4 a c) - b
(%o2) [x = - --------------------, x = --------------------]
2 a 2 a
以上一般解代入具体参数计算
(%i3) %, a=1, b=2, c=1;
(%o3) [x = - 1, x = - 1]
又如, 以下的三次方程 (注意可以只给出方程左端)
(%i5) solve(x^3 + 2*x^2 + 3*x + 4, x);
sqrt(3) %i - 1
5 (---------- + ---)
2 2 5 sqrt(2) 35 1/3 - 1 sqrt(3) %i
(%o5) [x = - --------------------- + (--------- - --) (--- - ----------)
5 sqrt(2) 35 1/3 3/2 27 2 2
9 (--------- - --) 3
3/2 27
3
- 1 sqrt(3) %i
5 (--- - ----------)
2 5 sqrt(2) 35 1/3 sqrt(3) %i - 1 2 2 2
- -, x = (--------- - --) (---------- + ---) - --------------------- - -,
3 3/2 27 2 2 5 sqrt(2) 35 1/3 3
3 9 (--------- - --)
3/2 27
3
5 sqrt(2) 35 1/3 5 2
x = (--------- - --) - --------------------- - -]
3/2 27 5 sqrt(2) 35 1/3 3
3 9 (--------- - --)
3/2 27
3
二元方程组
二元方程求解也使用 solve
, 其中方程和未知数都用方括号表示的列表表示.
如
(%i1) eq1: y+2*c=0;
(%o1) y + 2 c = 0
(%i2) eq2: 2*x*y-c*y=5;
(%o2) 2 x y - c y = 5
(%i3) solve([eq1,eq2], [x,y]);
2
2 c - 5
(%o3) [[x = --------, y = - 2 c]]
4 c
结果表示为解的列表, 每个解又是包含 x , y x, y x,y 两部分的列表.
一个二元二次方程组的例子:
(%i4) solve([(x-1)^2+y^2=4, x*y=1],[x,y]);
(%o4) [[x = 0.5153595952294904, y = 1.9403927068723703],
[x = 0.3167481152931003 %i - 0.7434214059810598,
y = - 0.4850624940594344 %i - 1.1384624687937306],
[x = - 0.3167481152931003 %i - 0.7434214059810598,
y = 0.4850624940594344 %i - 1.1384624687937306],
[x = 2.971483220309511, y = 0.33653227222189713]]