Wurzelziehen!
lima-city → Forum → Programmiersprachen → Java
abs
algorithmus
anfangswert
angabe
ausgeben
beitrag
deswegen
durchlauf
epsilon
erg
fragen
hilfe
informatik
klappe
lehrer
mathelehrer
schrittweite
schulen
variable
wurzel
-
Hi Leute unser lehrer will von uns das wir nicht mit hilfe der fkt. Math.sqrt() die wurzel ziehen sondern mit iteration
ich hab da einen code anfang aber hab keine idee wie ich die abbruchbedingung machen soll. bitte um hilfe!
op1 ist indem fall die variable von der die wurzel gezogen wird
float xalt = (op1/2);
while(Math.abs(Abbruchbedingung))
{
float xneu = ((xalt + (op1 / xalt)) / 2);
} -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
:xyxthumbs: wirklich gut nachgedacht, wenn man schaut was ich geschrieben hat wei? man welcher algorithmus das ist!
ich w?rd das als spam einsch?tzen...
meine frage w?re ja eine abbruchbedingung
while(Math.abs(???) //abbruchbedingung
{
float xneu = ((xalt + (op1 / xalt)) / 2);
}
Beitrag ge?ndert am 21.10 19:20 von silecom -
Verwend doch einfach den Heron'schen Algorithmus.
MfG
WiESi
Genau das wollte er doch machen. :)
Aber das geht bei ihn noch nicht so richtig.
Hier auf der Seite ist wird er erkl?rt
http://www.erg.slf.th.schule.de/informatik/d/
So w?rde das in Java aussehen. :)
(nicht geteste)
float a,x,xalt;
a=5;
x = 1; xalt := 0;
while(abs(x-xalt) > 0.00001){
xalt = x;
x = (x + a/x) / 2;
}
System.out.println("Wurzel aus "+a+" ist "+ x)
Jens -
danke muss ich mal testen!
bei abs geh?rt das Wort Math vor:
Math.abs
Beitrag ge?ndert am 21.10 19:28 von silecom -
danke muss ich mal testen!
bei abs geh?rt das Wort Math vor:
Math.abs
Beitrag ge?ndert am 21.10 19:28 von silecom
In der 1.5 Version kann man das umgehen. ;)
Aber nat?rlich hast du recht.
Jens -
aso ich arbeite nicht direkt mit java sondern mit netbeans3.6
ich will da eine funktionstabelle machen aber das klappt irgendwie nicht:
ausgaben sollen sein:
x normal x? und wurzel aus x
op1 anfangswert, op2 endwert, op3 schrittweite
public float makeString() {
float xalt = op1 / 2;
float x = 1;
for(float i = op1; i <= op2; op1 += op3) {
++help;
quad = (op1 * op1);
// while(Math.abs(x-xalt) > 0.00001) {
// float xneu = ((xalt + (op1 / xalt)) / 2);
// xalt = xneu;
// }
System.out.println(help+" "+quad+" "+xalt+"\n");
} -
zus?tzlich ergibt diese schleife immer eine endlosschleife was ich mir selbst nicht erkl?ren kann,
denn wenn ich i auf anfangswert(op1) setze und er solange tun soll bis i <= endposition(op2), und dabei bei jedem durchlauf i um die schrittweite(op3) erweitert m?sste es eigentlich klappen, tut es aber nicht -
Hallo
public float makeString() {
float xalt = op1 / 2;
float x = 1;
for(float i = op1; i <= op2; i += op3) {
++help;
quad = (i * i);
System.out.println(help+" "+quad+" "+xalt+"\n");
}
Probiere es mal so.
Denn float sind einfache Datentypen bei Java.
Darum gibt es Wert?bergabe und keine Referens?bergabe.
Jens -
hallo nochmal
public float sqrt(float x) { //eingegebene zahl
float a = x;
float xalt = x / 2;
float xneu;
do {
xneu = ((xalt + (a / xalt)) / 2);
xalt = xneu;
}
while(Math.abs(xneu - xalt) < epsilon);
return xneu;
das ist die angabe unseres lehrers, ich wei? nur nicht f?r was das epsilon gut sein soll, es funktioniert auch nicht.
bitte um rat
-
hallo nochmal
public float sqrt(float x) { //eingegebene zahl
float a = x;
float xalt = x / 2;
float xneu;
do {
xneu = ((xalt + (a / xalt)) / 2);
xalt = xneu;
}
while(Math.abs(xneu - xalt) < epsilon);
return xneu;
das ist die angabe unseres lehrers, ich wei? nur nicht f?r was das epsilon gut sein soll, es funktioniert auch nicht.
bitte um rat
lol
Dein Lehrer ist wohl Mathelehrer.
Denn epsilon steht in Mathe f?r ne ganz kleine positive Zahl.
Also schreib da ne kleine Zahl hin.
Jens -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage