Verfügbare Informationen zu "Hat jemand eine Lösung für Übung 8 Aufgabe 2"
Qualität des Beitrags: Beteiligte Poster: dave - m.imig Forum: Elektrotechnik und Informationstechnik Forenbeschreibung: ... 1. Semester an der FH Koblenz aus dem Unterforum: Informatik Antworten: 5 Forum gestartet am: Freitag 03.11.2006 Sprache: deutsch Link zum Originaltopic: Hat jemand eine Lösung für Übung 8 Aufgabe 2 Letzte Antwort: vor 16 Jahren, 3 Monaten, 12 Tagen, 3 Stunden, 12 Minuten
Alle Beiträge und Antworten zu "Hat jemand eine Lösung für Übung 8 Aufgabe 2"
Re: Hat jemand eine Lösung für Übung 8 Aufgabe 2
dave - 15.12.2006, 00:09Hat jemand eine Lösung für Übung 8 Aufgabe 2
Huhu,
ich weis nicht wie ich die Aufgabe 2 programmieren soll.
Wenn ich mir überlege ich soll Ableitungen brechnen ... das ist doch sehr aufwendig. Oder gibts da irgendein eleganten weg?
Viele Grüße
Dave
Re: Hat jemand eine Lösung für Übung 8 Aufgabe 2
m.imig - 15.12.2006, 11:36
Verstehe ich auch nicht, so eine Funktion zu programmieren, welche Ableitungen von beliebigen Funktionen errechnet ist schon arg aufwendig. Kann mir kaum vorstellen, dass die uns sowas zumuten würden.
Wobei da auch steht:"Nutzen Sie für die Berechnung der Funktion f sowie deren Ableitung jeweils eine
Funktion."
Echt, kA.
Re: Hat jemand eine Lösung für Übung 8 Aufgabe 2
dave - 15.12.2006, 11:41
Mir ist eben in Mathe eine Lösung für die Ableitung eingefallen:
Is gar nit so schwer ... muss man aber erst mal drauf kommen.
Mein Koeffitient ist im Array mit dem Index 0 abgespeichert z.B. funktion[][0]
Mei Exponent ist im Array mit dem Index 1 abgespeichert z.B. funktion[][1]
Code:
#include <iostream>
using namespace std;
void funcAbleitung(double funktion[20][2],int stellen)
{
for (int i = 0; i < stellen; i++)
{
if (funktion[i][1]==0) funktion[i][0]=1; //Wenn ein Absolutes Glied dann wird die Ableitung 0
else
{
funktion[i][0]=funktion[i][1]*funktion[i][0]; //Der Koeffitient wird mit exponten multipliziert
funktion[i][1]--; //Der Exponet wird um 1 veringert
}
}
}
int main()
{
int stellen=0;
cout << "Geben Sie an wieviele Glieder die zu lösende Gleichung hat: ";
cin >> stellen;
cin.ignore();
double funktion[20][2];
double ableitung[20][2];
for (int i=0; i < stellen; i++)
{
funktion[i][0]=0; // Initalisierung des Arrays
funktion[i][1]=0;
cout << endl << "Geben Sie den Koeffizienten der "<< i <<". Stelle ein: ";
cin >> funktion[i][0];
cin.ignore();
cout << endl << "Geben Sie den Exponeten der "<< i <<". Stelle ein: ";
cin >> funktion[i][1];
cin.ignore();
ableitung[i][0]=funktion[i][0]; // Initalisierung des Arrays ableitung
ableitung[i][1]=funktion[i][1];
}
funcAbleitung(ableitung,stellen);
for (int i=0; i < stellen; i++)
{
cout << endl << "Geben Sie den Koeffizienten der "<< i <<". Stelle ein: ";
cout << ableitung[i][0];
cout << endl << "Geben Sie den Exponeten der "<< i <<". Stelle ein: ";
cout << ableitung[i][1];
}
cin.ignore();
cin.ignore();
cin.ignore();
return 0;
}
Re: Hat jemand eine Lösung für Übung 8 Aufgabe 2
dave - 15.12.2006, 13:04
Ich habe etwas weiter programmiert ... aber die Wurzelsache klappt bei mir nicht weil eine negative wurzel ja nit definiert ist und bedingt durch das newton verfahren die xwerte ja sehr schnell auch in den neg bereich kommen.
Hat dafür jemand eine Lösung?
#include <iostream>
#include <cmath> // Neuer Header von math.h
using namespace std;
void funcAbleitung(double funktion[20][2],int stellen)
{
for (int i = 0; i < stellen; i++)
{
if (funktion[i][1]==0)
funktion[i][0]=0; //Wenn ein Absolutes Glied dann wird die Ableitung 0
else
{
funktion[i][0]=funktion[i][1]*funktion[i][0]; //Der Koeffitient wird mit exponten multipliziert
funktion[i][1]--; //Der Exponet wird um 1 veringert
}
}
}
double newtonAllgemein(double funktion[20][2],double ableitung[20][2], double abstand, int stellen,double startwert)
{
double xalt, xneu, temp1=0.0, temp2=0.0;
xneu=startwert;
int i=0;
int j=0;
do
{
xalt=xneu;
temp1=0;
temp2=0;
for (i=0; i<stellen; i++)
{
temp1=(funktion[i][0]*pow(xalt,funktion[i][1]))+temp1;
}
for (j=0; j<stellen; j++)
{
temp2=(ableitung[j][0]*pow(xalt,ableitung[j][1]))+temp2;
}
xneu=xalt-(temp1/temp2);
}while(((fabs(xalt-xneu))>abstand));
return xneu;
}
int main()
{
int stellen=0;
double e=0;
double start=1.0;
cout << "Geben Sie an wieviele Glieder die zu lösende Gleichung hat: ";
cin >> stellen;
cin.ignore();
double funktion[20][2];
double ableitung[20][2];
for (int i=0; i < stellen; i++)
{
funktion[i][0]=0; // Initalisierung des Arrays
funktion[i][1]=0;
cout << endl << "Geben Sie den Koeffizienten der "<< i <<". Stelle ein: ";
cin >> funktion[i][0];
cin.ignore();
cout << endl << "Geben Sie den Exponeten der "<< i <<". Stelle ein: ";
cin >> funktion[i][1];
cin.ignore();
ableitung[i][0]=funktion[i][0]; // Initalisierung des Arrays ableitung
ableitung[i][1]=funktion[i][1];
}
funcAbleitung(ableitung,stellen);
cout << endl << "Geben Sie die genauigkeit ein: ";
cin >> e;
cin.ignore();
cout << endl << "Geben Sie einen Startwert fuer das Newton-Verfahren ein: ";
cin >> start;
cin.ignore();
cin.ignore();
cout << newtonAllgemein(funktion,ableitung,e,stellen,start);
cin.ignore();
return 0;
}
Re: Hat jemand eine Lösung für Übung 8 Aufgabe 2
m.imig - 15.12.2006, 13:59
Für einfache Funktionen n-ten Grades würden mir paar Lösungen einfallen, aber ich dachte die beschränken sich nicht nur darauf in der Aufgabenstellung. So stelle ich es mir deshalb so aufwendig vor, Ableitungen von trigonometrischen, rationalen, verketteten usw. Funktionen zu programmieren.
Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken
Weitere Beiträge aus dem Forum Elektrotechnik und Informationstechnik
Übungsblatt 8, Aufgabe 6 - gepostet von Thomas Nolden am Donnerstag 25.01.2007
Technik und Zukunft - gepostet von Thomas Nolden am Dienstag 28.11.2006
Ähnliche Beiträge wie "Hat jemand eine Lösung für Übung 8 Aufgabe 2"
Übung gasaustritt im feuerwehrhaus - jamal-jefferson (Donnerstag 06.04.2006)
Beispiellösung: Übung 7, Aufgabe 1 (Binomialkoeffizient) - NVD (Freitag 08.12.2006)
5.übung salze - Chris (Sonntag 16.12.2007)
Lösung !!! - Madi (Samstag 12.03.2005)
Aufgabe 7 - xfire64 (Freitag 10.11.2006)
Aufgabe Betriebssystem - schell (Montag 07.11.2005)
Stahlbau 2. Übung - cecily (Sonntag 05.11.2006)
Zettel Nr 6 Aufgabe 23a - ahnungslos (Mittwoch 30.05.2007)
Übung macht den Meister - donna (Sonntag 29.04.2007)
DC mit dem Tbot ? Hier die "Angebliche" Lösung - HollaDieFee (Dienstag 29.05.2007)
