回答編集履歴

2

修正

2020/08/20 08:01

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -3,3 +3,61 @@
3
3
 
4
4
 
5
5
  [x ** 3 - a * x ** 2 - b * x - c = 0, a=4,b=-1, c=-1 - Wolfram|Alpha](https://www.wolframalpha.com/input/?i=x+**+3+-+a+*+x+**+2+-+b+*+x+-+c+%3D+0%2C+a%3D4%2Cb%3D-1%2C+c%3D-1&lang=ja)
6
+
7
+
8
+
9
+ ## 追記
10
+
11
+
12
+
13
+ evalf() で数値解として評価すると、虚数解が微小ですがでてきますね。
14
+
15
+
16
+
17
+ ```python
18
+
19
+ sols = sympy.solve(sympy.Eq(f, 0), x)
20
+
21
+
22
+
23
+ print("このとき, x^3-ax^2-bx-c=0の解は")
24
+
25
+ print("x1=", sols[0])
26
+
27
+ print("x2=", sols[1])
28
+
29
+ print("x3=", sols[2])
30
+
31
+
32
+
33
+ print("今, a,b,cを次のように定める.")
34
+
35
+ a1 = 4
36
+
37
+ b1 = -1
38
+
39
+ c1 = -1
40
+
41
+
42
+
43
+ for sol in sols:
44
+
45
+ print(sol.subs([(a, a1), (b, b1), (c, c1)]).evalf())
46
+
47
+
48
+
49
+ # 0.726109445035782 + 0.e-20*I
50
+
51
+ # -0.377202853972958 + 0.e-22*I
52
+
53
+ # 3.65109340893718 - 0.e-22*I
54
+
55
+ ```
56
+
57
+
58
+
59
+ Wolframe Alpha で a=4,b=c=-1 のときの厳密解は以下のようになっています。
60
+
61
+
62
+
63
+ ![イメージ説明](77d35c06be961fc46cc6b5b542c93b55.png)

1

修正

2020/08/20 08:00

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -1 +1,5 @@
1
1
  `sol[0]` の解に平方根が含まれているので、a, b, c の値によっては平方根の中身が負になって、その結果、虚数単位が表れます。
2
+
3
+
4
+
5
+ [x ** 3 - a * x ** 2 - b * x - c = 0, a=4,b=-1, c=-1 - Wolfram|Alpha](https://www.wolframalpha.com/input/?i=x+**+3+-+a+*+x+**+2+-+b+*+x+-+c+%3D+0%2C+a%3D4%2Cb%3D-1%2C+c%3D-1&lang=ja)