Kurvenlänge

Neue Frage »

karim_dh Auf diesen Beitrag antworten »
Kurvenlänge
Meine Frage:
Hallo , ich habe eine Funktion , f(x) = x^sin(x)
und es muss die Länge der Kurvenstück zwichen der Punkte 2 und 5 berechnet werden.Es wurde nach der Länge gefragt und nicht nach der Fläche,also nicht Integral.
Habt ihr eine Idee,wie man das richtig machen kann ?

Meine Ideen:
ich habe die Formel : laenge = sqrt(1 + f'(x)^2)* dx für alle x von 2 bis 5 benutzt und der Lehrer meinte,das wäre falsch.
10001000Nick1 Auf diesen Beitrag antworten »

ist die Länge des Graphen von im Intervall , richtig. Aber ich bezweifle, dass man dieses Integral für analytisch berechnen kann.

Wie lautet denn die originale Aufgabenstellung?
karim_dh1998 Auf diesen Beitrag antworten »
Kurvenlänge
Danke erstmal , ich muss das als C-Programm schreiben,aber ich benötige nur die richtige mathmatische Formel.
Gegeben ist die Funktion :
f(x) = x^sin(x)
Schreiben Sie einen rekursiven Algorithmus, der die Länge der Kurve im Intervall von 2 bis 5 annäherungsweise berechnet.
Hinweise:
• Hier wird nicht nach der Fläche gefragt. Integralrechnung ist hier also der falsche Weg.
• Sie dürfen die mathematischen Hilfsfunktionen verwenden, die Sie über
#include <math.h> einbinden können.
• Sie werden wahrscheinlich die Distanz zwischen zwei Punkten im 2D-Raum berechnen.
10001000Nick1 Auf diesen Beitrag antworten »

Es wäre schön, wenn du solche Informationen gleich in deiner Frage erwähnst... Augenzwinkern

Die Länge einer Kurve kannst du näherungsweise berechnen, indem du die Kurve durch einen Polygonzug approximierst und dessen Länge bestimmst.

Genauer: Du nimmst eine Unterteilung des Intervalls . Jetzt verbindest du der Reihe nach die Punkte zu diesen Zwischenstellen auf dem Graphen durch Strecken.
Die Länge dieses Polygonzugs ist dann die Summe der Länge der einzelnen Strecken, und das ist ja der Abstand zwischen Anfangs- und Endpunkt: .
Je kleiner du den Abstand der Zwischenstellen wählst, umso näher liegt diese Näherung an der tatsächlichen Länge der Kurve.

(Übrigens ist die Länge einer Kurve gerade das Supremum der Längen solcher Polygonzüge.)

Ich weiß nur nicht so wirklich, was man da rekursiv implementieren soll. verwirrt
IfindU Auf diesen Beitrag antworten »

Die Rekursion hat mich auch interessiert, nach ein wenig googlen bin ich auf folgende interessante Idee gestossen.

Man fixiert die Anzahl der Stützstellen und berechnet die Länge der einzelnen Teilabschnitte. Da die Funktion glatt ist, sollten benachbarte Abschnitte ähnliche Länge haben. Ist der Fehler größer als ein gewisses , wendet man auf Teilintervalle erneut die Unterteilung an.

So verfeinert man (hoffentlich) die "Problemstellen", anstatt auch bereits schöne Regionen erneut zu unterteilen.
karim_dh1998 Auf diesen Beitrag antworten »
Kurvenlänge
Genau das habe ich gemacht,der Lehrer meinte,das wäre falsch,und die richtige Lösung beinthält Lograrithmus oder so.
Eigentlich ich habe das nicht wahrgenommen,weil ich viel im Internet gesucht habe,und habe nur diese Lösung gefunden.

und hier ist die Methode,falls das dich mit der rekrusive Methode intersiert.
rekrusive Methode heißt,dass die Methode sich selber innerhalb der Methode ruft.

float kurvenlang(int val){
if(val < 2 ){
return 1;
}else{
printf("val ist : %d\n" , val);
return sqrt(1 + (sin(val) * pow( pow(val , sin(val) - 1) , 2 )) * (val - (val-1) ) ) + kurvenlang(val-1);
}
}
 
 
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »