Nullstellen der Polynome

31/01/2010 - 05:15 von borneo_II | Report spam
Ich bin kein professioneller Programmierer
deswegen bitte ich um entschuldigung.
Ich hoffe irgendjemand findet eine Anwendung
dafuer. Es funktioniert befriedigend.
Sonst Gute Nacht.


#!/bin/zsh
#
pi=$(echo "scale; 4*a(1)" | bc -l)
newton ()
{
c=0.00000001
x0.0

echo -e "\t\tNewton-Verfahren zur Bestimmung der Nullstellen"
echo -e "\t\t"
echo -e "\t\t\t zum Beispiel: "
echo -e "\t\t\t x^3-2*x-5"
echo -e "\t\t\t 3*x^2-2"
echo -e "\t\t\t 5.5"
echo -e "\t\t"
echo -n "Geben Sie die Funktion ein:"; read A
echo -n "Geben Sie die Ableitung ein:"; read B
echo -n "Geben Sie einen Anfangswert fuer x0 ein:"; read C
echo -e "-"
echo -e "Moegliche Nullstelle \t\t| Signifikanz"
echo -e "-"

if [[ $C -ge 0 ]]
then
for (( i=0; i<0; i++))
do
#c=0.00000001
tester=$(echo "define f(x) { return ($A) / ($B) }; f($C)" | bc -l )
Newton=$(echo "define f(x) { return $C - ($A)/($B) }; f($C)" | bc -l)
if [[ $tester -gt $c && $B -ne 0 ]];
then
C=$Newton
sign=$tester
else
break
fi;
echo -e "$C \t\t| $sign"
done
fi

if [[ $C -lt 0 ]]
then
a=0.00000001
for (( i=0 ; i<0; i++ ))
do
#a=0.00000001
tester=$(echo "define abs(x) { if ( x<0 ) return -x; return ($A) / ($B) }; abs($C)" | bc -l )
Newton=$(echo "define f(x) { return ( ($C) - ($A) / ($B) ) }; f($C)" | bc -l)
if [[ $tester -gt $a && $B -ne 0 ]];
then
C=$Newton
sign=$tester
F=$(echo $C + $sign | bc -l )
fi

if [[ $F -lt $a ]]
then
break
fi

echo -e "$C \t\t| $F "
done
fi;
}
case $1 in
Newton-Verfahren)
newton
;;
*)
echo -e \
'Das Script versucht die Nullstellen der Polynomen beliebigen Grades zu berechnen.
Die Nullstellen der gebrochen-rationalen sowie logarithmeischen
und exponentialen Funktionen liefern keine wahre Ergebnisse (Tut mir leid).
Benutzung z.B:
x^6-4*x^3-x^2+5
echo "Benutzen Sie $0 {Newton-Verfahren}"
;;
esac

pub 1024D/6276408C 2009-02-09 "borneo" (borneo) <borneo_II@gmx.de>
 

Lesen sie die antworten

#1 Dominik Pusch
31/01/2010 - 09:55 | Warnen spam
Hallo
Dieter Hoffman wrote:

echo -e \
'Das Script versucht die Nullstellen der Polynomen beliebigen Grades
zu berechnen. Die Nullstellen der gebrochen-rationalen sowie
logarithmeischen und exponentialen Funktionen liefern keine wahre
Ergebnisse (Tut mir leid). Benutzung z.B:
x^6-4*x^3-x^2+5


^ Hier ist wohl ein ' verloren gegangen?

echo "Benutzen Sie $0 {Newton-Verfahren}"
;;
esac





Danke! Sowas kommt mir gerade recht :)
Funktioniert offensichtlich:

`--> ./poly.sh Newton-Verfahren
Newton-Verfahren zur Bestimmung der Nullstellen

zum Beispiel:
x^3-2*x-5
3*x^2-2
5.5

Geben Sie die Funktion ein:x^4+x^3+x^2+x-30
Geben Sie die Ableitung ein:4*x^3+3*x^2+2*x+1
Geben Sie einen Anfangswert fuer x0 ein:35
-
Moegliche Nullstelle | Signifikanz
-
26.18536229072275544093 | 8.81463770927724455907
19.57380861786848411536 | 6.61155367285427132557
14.61458907231946517600 | 4.95921954554901893936
10.89495942192078742846 | 3.71962965039867774754
8.10622657573930441689 | 2.78873284618148301157
6.01907245641253532622 | 2.08715411932676909067
4.46687383372424963586 | 1.55219862268828569036
3.33699926539351260322 | 1.12987456833073703264
2.56937262148254923359 | .76762664391096336963
2.14593403310275868510 | .42343858837979054849
2.01223668248460900961 | .13369735061814967549
2.00009394334081012481 | .01214273914379888480
2.00000000558302640595 | .00009393775778371886

Ähnliche fragen