Kubikwurzelberechnung in JS < Praxis < Informatik < Vorhilfe
|
Aufgabe | Es soll die 3. Wurzel der Zahl w errechnet werden. Stellen Sie sich hierfür einen Quader mit quadratischer Grundfläche, mit dem anfänglichen Inhalt 1 und dem Volumen w vor. Durch Mittelwertbildung über die Höhe und der Breite wird die neue Höhe ermittelt. Aus dem Quader soll ein Würfel mit dem Volumen w entstehen. |
Hallo vorhilfeFriends =)
Wir sollen diese Aufgabe so ähnlich wie die Quadratwurzel lösen: Dazu hatten wir einen Algorithmus mut verschiedenen Rechtecken gegeben. Alle Rechtecke haben den gleichen Flächeninhalt. Es ist das Ziel, aus dem Rechteck durch Mittelwertbildung der Seitenlängen ein Quadrat mit gleichem Flächeninhalt zu finden. Folgendes soll das veranschaulichen:
[Externes Bild http://img65.imageshack.us/img65/2545/952553726dc.jpg]
Meine JavaScript-Lösung für die Quadratwurzel sieht so aus:
7: <script>
8: var r,gi,hi,a;
9: do {
10: r=prompt("Bitte geben Sie eine Zahl ein",9);
11: r=parseFloat(r);
12:
13: if (r<=0) {
14: alert("Bitte eine Zahl groesser Null eingeben!");
15: }
16:
17: }while(r<=0)
18:
19: gi=1;
20: hi=r;
21:
22: do {
23: hi=(hi+gi)/2
24: //document.write(hi,"----");
25: gi=r/hi;
26: //document.write(gi,"<br />");
27:
28: }while(hi-gi>0.00001);
29:
30: a=(gi+hi)/2;
31: document.write("Die Wurzel der Zahl ",r, " betraegt ", a,".");
32: </script>
Jetzt muss dieses Lösungsverfahren auf das der Kubikwurzel übertragen werden, jedoch habe ich keine Idee wie ich das umsetzten könnte, da es sich ja hierbei um einen Raum, also um Volumen handelt.
Bitte um Hilfe und ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Vielen Dank im voraus!
Gruß
MrPotter
Dateianhänge: Anhang Nr. 1 (Typ: jpg) [nicht öffentlich]
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 19:58 Mi 31.01.2007 | Autor: | MrPotter |
So nach längerem Grübeln bin ich nun selber auf eine recht simple Lösung gekommen. Diese möchte ich euch natürlich nicht vorenthalten!
Man denke sich einen Würfel mit einem Volumen a von (bspw.) 27. Soll heißen, wir wollen die Kubikwurzel 27 ermitteln. Zusätzlich stellt man sich die Kanten x, y und z vor, wobei x1 den Wert 27, y und z jeweils den Wert 1 haben.
Nun wird x1 aus dem Mittelwert von x,y und z bestimmt. Wäre in diesem Fall 9,666666. Man ordne diesen Wert y1 zu. Denn unser Würfel soll ja ein Würfel werden =) Und z1 ermittelt sich dann ganz einfach aus a dividiert durch das Produkt von x1 und y1. Macht also 0,289
Diesen Abschnitt einfach so lange wiederholen, bis alle 3 Werte x, y und z ziemlich gleich sind.
3,0 | 2,9 | 2,89 sind da schon ausreichend. Davon den Mittelwert bilden und das ist dann unsere Kubikwurzel!
Realisieren wollte ich das ja mit JavaScript. Hier ist mein netter Quelltext. Hab noch eine kleine Tabelle zur Veranschaulichung eingebaut.
1: | <script>
| 2: |
| 3: | var a,xi,yi,zi,zz1,e1;
| 4: |
| 5: | do {
| 6: | a=prompt("Bitte geben Sie eine Zahl ein",27);
| 7: | a=parseFloat(a);
| 8: |
| 9: | if (a<=0) {
| 10: | alert("Bitte eine Zahl groesser Null eingeben!");
| 11: | }
| 12: |
| 13: | }while(a<=0)
| 14: |
| 15: | zz1=0;
| 16: | xi=a;
| 17: | yi=1;
| 18: | zi=1;
| 19: |
| 20: | document.write("<table border='1'><tr><td>x<sub>n</sub></td><td>x</td><td>y</td><td>z</td></tr>");
| 21: |
| 22: | do {
| 23: | zz1++
| 24: | xi=(xi+yi+zi)/3;
| 25: | document.write("<tr><td>x<sub>",zz1,"</sub></td>")
| 26: | document.write("<td>",xi, "</td>");
| 27: | yi=xi;
| 28: | document.write("<td>",yi, "</td>");
| 29: | zi=a/(xi*yi);
| 30: | document.write("<td>",zi, "</td></tr>");
| 31: | } while(yi-zi>0.0000000001);
| 32: |
| 33: | e1=(xi+yi+zi)/3;
| 34: | document.write("</table>");
| 35: | document.write("<b>Die dritte Wurzel von ", a, " ist ", e1,"</b>");
| 36: | </script> |
Liebe Grüße
MrPotter
|
|
|
|