「2次方程式」の編集履歴(バックアップ)一覧はこちら
「2次方程式」(2010/01/25 (月) 19:39:59) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
2次方程式の解の公式をそのまま使うと、|b| ≒ √(b^2 - 4ac)のとき桁落ちが生じる。 そこで、桁落ちの生じないほうの解だけ公式で求め、もう一方は解と係数の関係(解をα、βとするとαβ = c / a)で求める。
quadeq.cの移植 AB4.24.00で動作確認
#asciiart(blockquote){
#strict
#prompt
Dim a As Double, b As Double, c As Double, d As Double, x As Double
Print "Input a, b, c"
Input a, b, c
If a <> 0 Then
' aで割ってx^2 + b*x + c = 0の形にする
b /= a
c /= a
If c <> 0 Then
b /= 2 ' x^2 + 2b'x + c = 0
d = b * b - c ' 判別式 D / 4
If d > 0 Then
If b > 0 Then
x = -b - Sqr(d)
Else
x = -b + Sqr(d)
End If
Print "x = "; x; ", "; c / x
ElseIf d < 0 Then
Print "x = "; -b; " +- "; Sqr(-d); "i"
Else
Print "x = ", -b
End If
Else
Print "x = "; -b; ", 0"
End If
ElseIf b <> 0 Then
Print "x = "; -c / b
ElseIf c <> 0 Then
Print "解なし。"
Else
Print "不定。"
EndIf
}