Interpolation durch 8 Punkte < Interpol.+Approx. < Numerik < Hochschule < Mathe < Vorhilfe
|
Aufgabe | Ich habe diese Frage auch in folgenden Foren auf anderen Internetseiten gestellt:
http://www.matheplanet.com/matheplanet/nuke/html/viewtopic.php?post_id=1097916&topic=149646
Hallo an alle Forum-Mitglieder.
Meine Aufgabe besteht darin eine Kraft-Funktion mit Mathematica herauszufinden, dessen Graph durch zuvor bekannte Extrempunkte durchgeht und diese ermittelte Funktion in einem Zyklus von 1s mit 50 Stützstellen ständig wiederholbar sein soll, wobei im Bereich ab
60%- bis 100%-Zykluszeit der Graph komplett linear verlaufen soll. Es handelt sich also um eine dynamische Kraft-Gleichung, dessen Polynom-Koeffizienten gefunden werden müssen. Ich habe schon ein Paar Programmcodes erstellt, aber leider bekomme ich noch nicht das gewünschte Ergebnis heraus.
Im Folgenden füge ich die Programmteile mal ein, sodass derjenige/diejenige, der/die in das Programm Mathematica diese Input-Zeilen einfügen kann, um die Ergebnisse zu erhalten, die ich schon habe:
1. Teil:
data = {{0,168}, {3, 1887}, {7, 1175}, {13, 2600}, {25, 838},
{45, 2433}, {60,168}, {100, 168}};
f = Interpolation[data]
p1 = ListPlot[data,
PlotStyle -> PointSize[.02]];
p2 = Plot[f[x], {x, 0, 100}];
Show[{p1, p2}]
In diesem ersten Teil geht zwar der Graph durch die 8 Punkte, aber diese Punkte werden nicht als Extrempunkte betrachtet und der lineare Anteil ab 60% Zykluszeit ist ebnfalls nicht dargestellt. Ab diesem Zeitpunkt habe ich erkannt, dass ich dem System mitteilen muss, dass es sich bei diesen 8 Punkten weitestgehend um Extrempunkte handeln muss.
2.Teil:
f[x_] = [mm] Sum[a[i]*x^i, [/mm] {i, 0, 9}]
f'[x]
dt = 1/50
xw = {0, 3dt, 7dt, 13dt, 25dt}
yw = {168, 1887, 1175, 2600, 838}
t1 = Table[gl[i] = f[ xwi ] == ywi, {i, 1, 5}]
t2 = Table[gl[i] = f'[ xwi ] == 0, {i, 1, 5}]
gls = Union[t1, t2]
var = Table[a[i], {i, 0, 9}]
ls = Solve[gls, var]
fneu[x_] = f[x] /. ls1
Plot[fneu[x], {x, 0, 0.6}]
Ich habe natürlich zuerst versucht mit allen 8 Werten diese Programm-Sequenz auszuprobieren, aber nach dem Befehl "ls = Solve[gls, var]"
bekomme ich kein Ergebnis raus, deswegen habe ich beginnend mit den ersten fünf Werten diese Programm-Sequenz ausprobiert, sodass ich immerhin ersdt einmal einen Graphen plotten kann, der aber dem beabsichtigten Graphen leider fast gar nicht ähnelt. Im nächsten Schritt wiederhole ich dieselbe Sequenz aber dieses Mal verwende ich die ersten 6 Werte:
3.Teil:
f[x_] = [mm] Sum[a[i]*x^i, [/mm] {i, 0, 9}]
f'[x]
dt = 1/50
xw = {0, 3dt, 7dt, 13dt, 25dt, 45dt}
yw = {168, 1887, 1175, 2600, 838, 2433}
t1 = Table[gl[i] = f[ xwi ] == ywi, {i, 1, 6}]
t2 = Table[gl[i] = f'[ xwi ] == 0, {i, 1, 6}]
gls = Union[t1, t2]
var = Table[a[i], {i, 0, 9}]
ls = Solve[gls, var]
Nach dem letzten Befehl "ls = Solve[gls, var]" kommt leider eine leere Summe raus. Ab dieser Stelle verstehe ich die Welt nicht mehr :-? Warum klappt diese Programm-Sequenz bei bis zu 5 eingegebenen Extremwerten, aber ab 6 Extremwerten dann auf einmal nicht mehr? Ist das Programm Mathematica ab 6 Werten wirklich überfordert eine anständige Funktion hervor zu zaubern, oder mache ich da etwas komplett falsches? Gibt es da jemanden, der sich mit solch einem Fall in der Vergangenheit schonmal auseinandergestzt hat und mir diesbezüglich ein paar gute Tipps anhand von Mathematica-Befehlen geben kann? Jeder noch so kleine Hinweis ist bei mir gerne gesehen.
Mit freundlichen Grüßen |
|
|
|
|
Hallo alphaman007,
> Ich habe diese Frage auch in folgenden Foren auf anderen
> Internetseiten gestellt:
>
> http://www.matheplanet.com/matheplanet/nuke/html/viewtopic.php?post_id=1097916&topic=149646
>
> Hallo an alle Forum-Mitglieder.
>
> Meine Aufgabe besteht darin eine Kraft-Funktion mit
> Mathematica herauszufinden, dessen Graph durch zuvor
> bekannte Extrempunkte durchgeht und diese ermittelte
> Funktion in einem Zyklus von 1s mit 50 Stützstellen
> ständig wiederholbar sein soll, wobei im Bereich ab
> 60%- bis 100%-Zykluszeit der Graph komplett linear
> verlaufen soll. Es handelt sich also um eine dynamische
> Kraft-Gleichung, dessen Polynom-Koeffizienten gefunden
> werden müssen. Ich habe schon ein Paar Programmcodes
> erstellt, aber leider bekomme ich noch nicht das
> gewünschte Ergebnis heraus.
> Im Folgenden füge ich die Programmteile mal ein, sodass
> derjenige/diejenige, der/die in das Programm Mathematica
> diese Input-Zeilen einfügen kann, um die Ergebnisse zu
> erhalten, die ich schon habe:
>
> 1. Teil:
>
> data = {{0,168}, {3, 1887}, {7, 1175}, {13, 2600}, {25,
> 838},
> {45, 2433}, {60,168}, {100, 168}};
>
> f = Interpolation[data]
>
> p1 = ListPlot[data,
> PlotStyle -> PointSize[.02]];
>
> p2 = Plot[f[x], {x, 0, 100}];
>
> Show[{p1, p2}]
>
>
> In diesem ersten Teil geht zwar der Graph durch die 8
> Punkte, aber diese Punkte werden nicht als Extrempunkte
> betrachtet und der lineare Anteil ab 60% Zykluszeit ist
> ebnfalls nicht dargestellt. Ab diesem Zeitpunkt habe ich
> erkannt, dass ich dem System mitteilen muss, dass es sich
> bei diesen 8 Punkten weitestgehend um Extrempunkte handeln
> muss.
>
>
> 2.Teil:
>
> f[x_] = [mm]Sum[a[i]*x^i,[/mm] {i, 0, 9}][/i][/mm]
> [mm][i] [/i][/mm]
> [mm][i]f'[x][/i][/mm]
> [mm][i] [/i][/mm]
> [mm][i]dt = 1/50[/i][/mm]
> [mm][i] [/i][/mm]
> [mm][i]xw = {0, 3dt, 7dt, 13dt, 25dt}[/i][/mm]
> [mm][i] [/i][/mm]
> [mm][i]yw = {168, 1887, 1175, 2600, 838}[/i][/mm]
> [mm][i] [/i][/mm]
> [mm][i]t1 = Table[gl[i] = f[ xw[[i]] ] == yw[[i]], {i, 1, 5}][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i] [/i][/i][/i][/i][/mm]
> [mm][i][i][i][i]t2 = Table[gl[i] = f'[ xw[[i]] ] == 0, {i, 1, 5}][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i] [/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i]gls = Union[t1, t2][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i] [/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i]var = Table[a[i], {i, 0, 9}][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i] [/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i]ls = Solve[gls, var][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i] [/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i]fneu[x_] = f[x] /. ls[[1]][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i] [/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i]Plot[fneu[x], {x, 0, 0.6}][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i] [/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i]Ich habe natürlich zuerst versucht mit allen 8 Werten [/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i]diese Programm-Sequenz auszuprobieren, aber nach dem Befehl [/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i] "ls = Solve[gls, var]"[/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i] bekomme ich kein Ergebnis raus, deswegen habe ich [/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i]beginnend mit den ersten fünf Werten diese [/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i]Programm-Sequenz ausprobiert, sodass ich immerhin ersdt [/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i]einmal einen Graphen plotten kann, der aber dem [/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i]beabsichtigten Graphen leider fast gar nicht ähnelt. Im [/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i]nächsten Schritt wiederhole ich dieselbe Sequenz aber [/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i]dieses Mal verwende ich die ersten 6 Werte:[/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i] [/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i]3.Teil: [/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i]f[x_] = [mm]Sum[a[i]*x^i,[/mm] {i, 0, 9}][/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i] [/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i]f'[x][/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i] [/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i]dt = 1/50[/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i] [/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i]xw = {0, 3dt, 7dt, 13dt, 25dt, 45dt}[/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i] [/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i]yw = {168, 1887, 1175, 2600, 838, 2433}[/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i] [/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i]t1 = Table[gl[i] = f[ xw[[i]] ] == yw[[i]], {i, 1, 6}][/i][/i][/i][/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i][i][i][i] [/i][/i][/i][/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i][i][i][i]t2 = Table[gl[i] = f'[ xw[[i]] ] == 0, {i, 1, 6}][/i][/i][/i][/i][/i][/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i][i][i][i][i][i] [/i][/i][/i][/i][/i][/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i][i][i][i][i][i]gls = Union[t1, t2][/i][/i][/i][/i][/i][/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i][i][i][i][i][i] [/i][/i][/i][/i][/i][/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i][i][i][i][i][i]var = Table[a[i], {i, 0, 9}][/i][/i][/i][/i][/i][/i][/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i][i][i][i][i][i][i] [/i][/i][/i][/i][/i][/i][/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i][i][i][i][i][i][i]ls = Solve[gls, var][/i][/i][/i][/i][/i][/i][/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i][i][i][i][i][i][i] [/i][/i][/i][/i][/i][/i][/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i][i][i][i][i][i][i][/i][/i][/i][/i][/i][/i][/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i][i][i][i][i][i][i]Nach dem letzten Befehl "ls = Solve[gls, var]" kommt [/i][/i][/i][/i][/i][/i][/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i][i][i][i][i][i][i]leider eine leere Summe raus. Ab dieser Stelle verstehe ich [/i][/i][/i][/i][/i][/i][/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i][i][i][i][i][i][i]die Welt nicht mehr :-? Warum klappt diese Programm-Sequenz [/i][/i][/i][/i][/i][/i][/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i][i][i][i][i][i][i]bei bis zu 5 eingegebenen Extremwerten, aber ab 6 [/i][/i][/i][/i][/i][/i][/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i][i][i][i][i][i][i]Extremwerten dann auf einmal nicht mehr? Ist das Programm [/i][/i][/i][/i][/i][/i][/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i][i][i][i][i][i][i]Mathematica ab 6 Werten wirklich überfordert eine [/i][/i][/i][/i][/i][/i][/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i][i][i][i][i][i][i]anständige Funktion hervor zu zaubern, oder mache ich da [/i][/i][/i][/i][/i][/i][/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i][i][i][i][i][i][i]etwas komplett falsches? Gibt es da jemanden, der sich mit [/i][/i][/i][/i][/i][/i][/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i][i][i][i][i][i][i]solch einem Fall in der Vergangenheit schonmal [/i][/i][/i][/i][/i][/i][/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i][i][i][i][i][i][i]auseinandergestzt hat und mir diesbezüglich ein paar gute [/i][/i][/i][/i][/i][/i][/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i][i][i][i][i][i][i]Tipps anhand von Mathematica-Befehlen geben kann? Jeder [/i][/i][/i][/i][/i][/i][/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i][i][i][i][i][i][i]noch so kleine Hinweis ist bei mir gerne gesehen. [/i][/i][/i][/i][/i][/i][/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i][i][i][i][i][i][i][/i][/i][/i][/i][/i][/i][/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
Da Du im Teil 2 und 3 auch die Bedingungen für Extremwerte
zu den Bedingungen nimmst. ,muß das resultierende Polynom
auch von höherem Grad sein (hier: 16 Bedingungen => Grad 15)
> [mm][i][i][i][i][i][i][i][mm][i][i][i][i][i][i][i]Mit freundlichen Grüßen[/i][/i][/i][/i][/i][/i][/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
> [mm][i][i][i][i][i][i][i][mm][i][i][i][i][i][i][i] [/i][/i][/i][/i][/i][/i][/i][/mm][/i][/i][/i][/i][/i][/i][/i][/mm]
Gruss
MathePower
|
|
|
|