私が書いているプログラムでは、ユーザーは 2 次多項式または 3 次多項式の 3 次関数を解くかどうかを選択できます。選択すると、プログラムは次を含む多くの式を適用します: 2 次判別式の解、2 次式、2 次多項式の式、Cardano の類似の 3 次多項式の方法、および標準の 3 次式 (基本的に、最初のこのページの 4 つの数式)。
これが私のコードです:
import math
def deg3():
print("This is a third degree polynomial calculator.")
print("Please enter four numbers.")
a = int(input())
b = int(input())
c = int(input())
d = int(input())
# Apply Cardano's compressed method to find x root, broken up into different variables.
p = (-1 * b)/(3 * a)
q = p ** 3 + (b * c - (3 * a * d))/ (6 * (a ** 2))
r = c / (3 * a)
x = (q + (q**2 + (r - p**2)**3) **1/2) **1/3 + (q + (q**2 + (r - p**2)**3) **1/2) **1/3 + p
print("The root is:", x)
# Applies final cubic formula, and returns.
total = (a * x**3) + (b * x**2) + (c * x) + d
total = round(total, 3)
return total
# If discr > 0, then the equation has three distinct real roots.
# If discr = 0, then the equation has a multiple root and all its roots are real.
# If discr < 0, then the equation has one real root and
# two nonreal complex conjugate roots.
合計を簡単に返すようになりました。計算は正しいですが、私はまだ類似の式に頭を悩ませようとしています。方程式の判別部分は何ですか? 二次方程式の場合のように、潜在的な根を見つけるにはどうすればよいですか? おそらく簡単な質問ですが、プロセスをよりよく理解したいと思います。