piątek,
Kalkulator bc: Pierwiastki równania kwadratowego
W świecie programowania i automatyzacji, skrypty bash często stanowią nieocenione narzędzie dla systemów operacyjnych opartych na Linuksie. Skrypty mogą także posłużyć do obliczeń matematycznych, jednak w takim przypadku warto w nich wykorzystać zewnętrzne narzędzie w postaci kalkulatora bc. Dzięki niemu można zniwelować m.in. brak obsługi obliczeń zmiennoprzecinkowych i pierwiastków kwadratowych w „czystym” bash. Kalkulator bc mocno ułatwia tworzenie skryptu bash do obliczania pierwiastków równania kwadratowego.
Biorąc pod uwagę, że bc
nie obsługuje bezpośrednio pierwiastków kwadratowych z liczb ujemnych, przykładowy skrypt będzie działać poprawnie tylko w przypadkach, gdy równanie ma rozwiązania rzeczywiste (delta większa lub równa zero). Ograniczenie to można zniwelować, ale wtedy skrypt będzie znacznie bardziej złożony.
Sposób na obliczanie za pomocą bc
pierwiastków kwadratowych z liczb ujemnych znajdziesz w materiale „Kalkulator bc: Pierwiastki kwadratowe z liczb ujemnych”. Jeśli potrzebujesz szybkiej pomocy z zakresu obliczania pierwiastków równania kwadratowego, zerknij do materiału „Bash: Pierwiastki równania kwadratowego”.
Przykładowy skrypt bash
#!/bin/bash
# Wartości współczynników
a=1
b=-3
c=2
# Obliczanie delty
delta=$(echo "scale=4; $b^2 - 4*$a*$c" | bc)
# Sprawdzanie, czy delta jest większa lub równa zero
if (( $(echo "$delta >= 0" | bc -l) )); then
# Obliczanie pierwiastków
x1=$(echo "scale=4; ($((-$b)) + sqrt($delta))/(2*$a)" | bc)
x2=$(echo "scale=4; ($((-$b)) - sqrt($delta))/(2*$a)" | bc)
echo "Pierwiastki równania kwadratowego to: x1 = $x1, x2 = $x2"
else
echo "Równanie nie ma rozwiązań rzeczywistych."
fi
W tym skrypcie:
- Najpierw definiujemy współczynniki równania kwadratowego (
a
,b
,c
). - Obliczamy deltę: Delta = b^2 - 4ac.
- Jeśli delta jest większa lub równa zero, obliczamy oba pierwiastki równania kwadratowego, korzystając ze wzoru.
- Wyniki są wyświetlane. Jeśli delta jest ujemna, skrypt informuje, że równanie nie ma rozwiązań rzeczywistych.
Możesz dostosować wartości a
, b
, c
do swojego konkretnego równania kwadratowego, aby uzyskać odpowiednie rozwiązania.
Modyfikacja skryptu
Skrypt może być wywoływany z przekazaniem argumentów, po niewielkiej przeróbce:
# Wartości współczynników
a=$1
b=$2
c=$3