Wo ist die Formel???

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
code2nil
Beiträge: 9
Registriert: 17.09.2004 09:39
Wohnort: Nähe K/BN/SU/GM

Beitrag von code2nil »

Konne hat geschrieben:Mir geht es nur darum das die Funktion den "Shape" ka wie das auf deutsch heisst von einer der oberen funktinen hat.
Wenn ich dich richtig verstehe, willst du, dass der Graph mal ein Extremum (Hoch- oder Tiefpunkt) und mal einen Sattelpunkt darstellt?!

Da eine Nullstelle bei den Linearfaktoren [man betrachte z.B. f(x) = (x-3)] in der Regel bedeutet, dass der Graph die y-Achse schneidet (hier bei x=3) sollte klar sein, was passiert, wenn man den Linearfaktor in z.B. die zweite Potenz erhebt.
f(x) = (x-3)^2 z.B. müsste ja dann die y-Achse bei x=3 doppelt schneiden.
Und so genau kann das auch interpretiert werden.
Doppeltes Schneiden => Die y-Achse wird nur berührt!
Also haben wir hier einen Hoch- bzw. Tiefpunkt...
Weiter gedacht bedeutet dies:
Steht der entsprechende Linearfaktor in ungerader Potenz, wird die y-Achse echt geschnitten, ansonsten nur berührt.

Die Graph der Funktion f(x) = (x-2)^3 z.B. wird die y-Achse bei x=2 schneiden.
Und zwar in Form eines Sattelpunktes (also wie ein 'S')...
Benutzeravatar
Konne
Beiträge: 764
Registriert: 30.03.2005 02:20
Kontaktdaten:

Beitrag von Konne »

>>also du hast so einen Kurvenverlauf gegeben und brauchst eine Funktion?
>>(Sorry wenn ich mich blöd anstelle)

Genau :allright:

und der Kurvenverlauf geht durch 2 Punkte die verschiedene x und y Werte haben und soll 5 grades sein. Die Grafik sollte dann so aussehen wie die rote Linie im Schaubild links oben. Die Grafik kann gestreckt oder spiegelverkehrt sein (-), dass ist egal. Sie sollte Nach folgendem Schema aufgebaut sein.

y=k*(x-a)(x-b)(x-c)(x-d)(x-e)
Benutzeravatar
Konne
Beiträge: 764
Registriert: 30.03.2005 02:20
Kontaktdaten:

Beitrag von Konne »

Ich hab jetzt mal versucht mit matrixberechnungen draufzukommen aber der GTR meldet dann einen fehler.

Ich habe folgende Punkte:
A(-5|-5)
B(-2|-2)
C(-2|-2)
D(2|2)
E(2|2)
F(5|5)

Also sieht die Matrix um die Koeffizeienten zu berechnen so aus (x koordinaten hoch 5,4,3,2,1,0)
|-3125,625,-125,25,-5,1|
|-32,16,-8,4,2,1|
|-32,16,-8,4,2,1|
|32,16,8,4,2,1|
|32,16,8,4,2,1|
|3125,625,125,25,5,1|
=[A]

Die y koordinaten sind:
|-5|
|-2|
|-2|
|2|
|2|
|5|
=

[A]^(-1)*

Dann sollte ja das Ergebnis ausspucken. Geht aber nicht weil mein Taschenrechner wegen iregndwas meckert.
Benutzeravatar
Froggerprogger
Badmin
Beiträge: 855
Registriert: 08.09.2004 20:02

Beitrag von Froggerprogger »

Bei [A]^(-1) meckert der Taschenrechner bestimmt, da die Matrix nicht invertierbar ist (Determinante gleich Null, da übereinstimmende Zeilen). Ich sehe auch nicht genau, welchen Lösungsweg du da versuchst. Es genügt einfach, die GaussElimination der erweiterten Matrix [A|B] zu machen. Dann erhält man:
Bild

Damit existieren unendlich viele Lösungen. (Du hattest ja auch nur 4 verschiedene Punkte festgelegt, damit bleiben 2 Freiheitsgrade. Erst durch 6 Punkte legst Du das Polynom 5ten Grades eindeutig fest)
Die spezielle Lösung ist: L1 := -1/100*x^5 + 29/100*x^3
Die beiden weiteren Vektoren für das Bilden der gesamten Lösungsmenge erhält man mit dem 'Trick', in der Hauptdiagonalen der nicht-Enheitsspaltvektoren eine -1 zu setzen:
L2 := -1/100*x^5 + 29/100*x^3 - x^1
L3 := -1/100*x^4 + 29/100*x^2 - x^0

Die Lösungsmenge ist also gegeben durch sämtliche Vektoren, die sich durch

Code: Alles auswählen

L1 + s * L2 + t * L3
für beliebige s,t aus R erzeugen lassen.

Für einige s,t habe ich hier mal ein Bild gemacht. Sämtliche diese Funktionen gehen durch die gewünschten Punkte.

Mit dem vorhin geposteten Funktionenplotter kann man diese Funktionen auch selbst mal ausprobieren. (es lassen sich da auch mehrere Funktionen in ein Bild malen)

Bild
!UD2
Benutzeravatar
Konne
Beiträge: 764
Registriert: 30.03.2005 02:20
Kontaktdaten:

Beitrag von Konne »

Danke aber soweit ich sehe hat keine dieser Funktionen einen "Point of inversion". ich meine damit das die Funktion an den Punkten die ich dopplet angegeben habe nicht die richtung aendert. Also wenn sie von unten kam soll sie auch wieder nach oben aus den Punkten herausgehen.) Auf der x-achse wuerde man sowas mehrfache Nullstelle nennen.
Benutzeravatar
Froggerprogger
Badmin
Beiträge: 855
Registriert: 08.09.2004 20:02

Beitrag von Froggerprogger »

Wahrscheinlich haben alle Funktionen im Bild nichteinmal ein Extremum oder einen Wendepunkt (daher erst recht keinen Sattelpunkt) in einem der vorgegebenen Punkte.
Es sind zwei völlig verschiedene Sachen, das Polynom durch ein paar Punkte zu legen, oder zudem noch zu fordern, dass einer davon ein besonderer ist. Hierfür muss man dann ja die Ableitungen mit einbauen, und darf daher nur weniger Punkte vorgeben.

Ich glaube erst jetzt habe ich gecheckt, was Du eigentlich willst. :wink:

Also:
2 Punkte sind gegeben, beide sollen Sattelpunkte sein (Wendepunkte mit 1. Ableitung 0 darin).
Wir suchen ein Polynom 5-ten Grades, welches diese Bedingungen erfüllt.
Ist das möglich ?
2 Gleichungen werden durch die Punkte festgelegt.
2 weitere Gleichungen dadurch, dass die Ableitung in den Punkten gleich 0 sein soll (notwendig für Sattelpunkt).
2 weitere Gleichungen dadurch, dass die 2. Ableitung in den Punkten gleich 0 sein soll (damit diese Punkte Wendepunkte sein können (die dritte Ableitung lassen wir außen vor, da es egal ist, ob die Kurve links/rechts, rechts/links, oder direkt gerade hinduchgeht)).

Damit müssen wir 6 Gleichungen erfüllen, und haben 6 Unbekannte, nämlich die 6 Koeffizienten. D.h. wir erhalten im Regelfall wahrscheinlich eine eindeutige Lösung.
Wie sehen die Gleichungen aus ?
Seien die Punkte (x_1, y_1) und (x_2, y_2).
Dann muss gelten:

Code: Alles auswählen

   x_1^5 * a^5 +    x_1^4 * a^4 +   x_1^3 * a^3 +   x_1^2 * a^2 + x_1^1 * a^1 + 1 * a^0 = y_1
   x_2^5 * a^5 +    x_2^4 * a^4 +   x_2^3 * a^3 +   x_2^2 * a^2 + x_2^1 * a^1 + 1 * a^0 = y_2
 5*x_1^4 * a^5 +  4*x_1^3 * a^4 + 3*x_1^2 * a^3 + 2*x_1 * a^2   + 1 * a^1     + 0 * a^0 = 0
 5*x_2^4 * a^5 +  4*x_2^3 * a^4 + 3*x_2^2 * a^3 + 2*x_2 * a^2   + 1 * a^1     + 0 * a^0 = 0
20*x_1^3 * a^5 + 12*x_1^2 * a^4 + 6*x_1^1 * a^3 +   2 * a^2     +    0 * a^1  + 0 * a^0 = 0
20*x_2^3 * a^5 + 12*x_2^2 * a^4 + 6*x_2^1 * a^3 +   2 * a^2     +    0 * a^1  + 0 * a^0 = 0
Worin die a_i die gesuchten Unbekannten sind.

Die entsprechende Matrix sieht so aus:
Bild

der Gaussjordan führt uns zur (eindeutigen, falls nicht durch Null dividiert) Lösung:
Bild

Damit können wir nun zu 2 beliebigen Sattelpunkten ein Polynom 5ten Grades durchlegen.
Z.B. für (-2,-2) und (2,2) erhalten wird als Polynom:

Code: Alles auswählen

f(x) = 3/128*x^5 - 5/16 * x^3 + 15/8 * x
Das sieht dann so aus:
Bild

Mathe macht Spaß! :D
Ich muss nun aber Schlafen gehen, bei uns hier ist schon tiefe Nacht...
Zuletzt geändert von Froggerprogger am 05.03.2006 10:46, insgesamt 1-mal geändert.
!UD2
code2nil
Beiträge: 9
Registriert: 17.09.2004 09:39
Wohnort: Nähe K/BN/SU/GM

Beitrag von code2nil »

Froggerprogger hat geschrieben: Mathe macht Spaß! :D
Ja, besonders, sobald man die Aufgabenstellung kennt... :wink:
Benutzeravatar
Froggerprogger
Badmin
Beiträge: 855
Registriert: 08.09.2004 20:02

Beitrag von Froggerprogger »

Bei Aufgabenstellung fällt mir noch ein:
Sie sollte Nach folgendem Schema aufgebaut sein.
y=k*(x-a)(x-b)(x-c)(x-d)(x-e)
Im Allgemeinen wird diese Form nicht möglich sein, da die meisten Polynome über R nicht in Linearfaktoren zerfallen (erst über C zerfallen sie immer in Linearfaktoren)

Bei obigem Beispiel mit (-2,-2) (2,2) haben wir nur eine einfache Nullstelle in 0. Das Polynom zerfällt nur bis zu :

Code: Alles auswählen

1/128*x*(3*x^4-40*x^2+240)
Dann lassen sich keine weiteren Linearfaktoren mehr abspalten.
!UD2
Benutzeravatar
Franky
Beiträge: 1132
Registriert: 29.08.2004 16:31
Wohnort: Münsterland
Kontaktdaten:

Beitrag von Franky »

Hast recht, Froggerprogger, Mathe macht spass. :)

Aber ich frage mich schon die Ganze zeit:

Wie Integriert man f(x)=(3x³+7x²-9x+5)²³ , ohne die Klammer extra auf zu lösen. Da muss es doch ne möglichkeit geben :)

Hatte schonmal die Idee, das ganze einfach zu erweitern(mit ln()-Brams Multiplizieren, die Stammfunktion), allerdings ging das net auf.
Falsch zugeordnetes Zitat des Tages: "O'zapft is" - Edward Snowden :)
Benutzeravatar
Froggerprogger
Badmin
Beiträge: 855
Registriert: 08.09.2004 20:02

Beitrag von Froggerprogger »

Wie Integriert man f(x)=(3x³+7x²-9x+5)²³ , ohne die Klammer extra auf zu lösen. Da muss es doch ne möglichkeit geben
Man schmeisse ein CAS (ComputerAlgebraSystem, z.B. Maple, Mathematica, MuPad, ...) an und tippe sowas ein wie:

Code: Alles auswählen

int((3*x^3 + 7*x^2 - 9*x + 5)^23, x);
:D
Das Ergebnis lässt sich auch schön faktorisieren durch:

Code: Alles auswählen

factor(int((3*x^3 + 7*x^2 - 9*x + 5)^23, x));
Leider jedoch zerfällt das Ergebnis in R nicht Linearfaktoren, daher sieht es so aus:

Code: Alles auswählen

1/4119611048205174325112400*x
*(5540475422983780626796653001073640*x^69
+301648106362450278570039996725120400*x^68
+7462622059924820337060485297132390400*x^67
+109951270746558688817170783568205328800*x^66
+1057406688571121240661553459737066035400*x^65
+6770244044733199400476854233333995427280*x^64
+27343002826474811621205422293557394894125*x^63
+51807543146906219424681382549189195502400*x^62
-83069680475106739221843095647269025543200*x^61
-689234295396933758463070219511733427665600*x^60
-748350997460904580149025206083769458225040*x^59
+4285347785555782223606376376494402979579200*x^58
+11098246843913100554796966624094836067245600*x^57
-19489082701167933700692306865327782685444800*x^56
-85633853891398949943194629351732044411479400*x^55
+85360995898626265208171017723842836601925440*x^54
+514262694065436319314027970371735701135251200*x^53
-469066497778327550070167794815179114461507200*x^52
-2590627248730063612433540493618030309047252400*x^51
+3141642388426309925997704734541828486799268800*x^50
+10656702819548723503895641592247744017208327360*x^49
-20115501612375038138862286377937101106835491200*x^48
-31069039344183677273474684254783820440005018900*x^47
+105420541966161252802895720910325020118970587200*x^46
+25834994250895506478974951252735006432846213600*x^45
-410196765848877944074191656721153862925066055360*x^44
+338786390880489503075623435537596142930798470000*x^43
+988537771710566495999573566305622189115586369600*x^42
-2248961359075082361643118363046812304610329880800*x^41
-212454662130079527438767238346163823006551198400*x^40
+6831743359411464664929301063983992608749919608360*x^39
-8663095172467863523955139869064293850048162955200*x^38
-6078061985473375728802807019997237666268659231600*x^37
+30971792159343703886111460473811639760251193312800*x^36
-31402155809978360236391184380498853611604885015600*x^35
-24424187240929717257465002078630842749558462309120*x^34
+108978983676132434972096502651998840231180451958800*x^33
-122955159242969138136995579743371913541131046152800*x^32
-22248524983754077840320272914721819373702639932850*x^31
+279786678529080002199373223469868191808107662539200*x^30
-435933885303687061570961828926907498227197457116000*x^29
+252174909853504160197636464865541622084747844939200*x^28
+307759021753823936680804991320234736943903595784400*x^27
-967986005007494110562996649485539361035889137755200*x^26
+1274066474069259935942972013740862807558357332930400*x^25
-889034418966753714939310107215446563154051245324864*x^24
-172437039377631695525689984705766208644379471869400*x^23
+1543954827365952281587193931447536303261241178392000*x^22
-2725045678611837361385999896704425494085729055960000*x^21
+3347942430592180914795511625634520061919872512800000*x^20
-3322916115072581259680566915235940441688253756250000*x^19
+2808410992613271219635341682125698263967021945000000*x^18
-2072771736146901925862338386529018989671296350000000*x^17
+1354627711404817660560904352070373867829463000000000*x^16
-790267075571486857470751223828123894571016757812500*x^15
+413443559189495812941332961135037381898521875000000*x^14
-194415111575045396652361496789122393485023437500000*x^13
+82209583699122805457739613046038491251484375000000*x^12
-31227852203387239597616015099113053989355468750000*x^11
+10629618985843977446046740782507724138671875000000*x^10
-3229513888351988745508346023139947836914062500000*x^9
+870903552748798840013480037404547802734375000000*x^8
-206881829563133499332714898066917633056640625000*x^7
+42854484200513392048580402427586669921875000000*x^6
-7636612586951785800045432174932098388671875000*x^5
+1149217616208654583125819227119445800781250000*x^4
-142292485146522354339936651649475097656250000*x^3
+13945814149327882572212838363647460937500000*x^2
-1016568526003922325728257656097412109375000*x
+49109590628208808006196022033691406250000)
Immerhin erkennt man, dass der Graph durch den Ursprung verläuft...

Mit

Code: Alles auswählen

factor(int((3*x^3 + 7*x^2 - 9*x + 5)^23, x), complex);
kann man sich die Faktorisierung über C ansehen, und siehe da, das Polynom zerfällt komplett in Linearfaktoren:

Code: Alles auswählen

1344902555*10^9
*(x+3.899918089)
*(x+3.889692058+.1132166950*I)
*(x+3.889692058-.1132166950*I)
*(x+3.859009916+.2239672049*I)
*(x+3.859009916-.2239672049*I)
*(x+3.807848391+.3297391623*I)
*(x+3.807848391-.3297391623*I)
*(x+3.736128401+.4279170265*I)
*(x+3.736128401-.4279170265*I)
*(x+3.643641604+.5156993995*I)
*(x+3.643641604-.5156993995*I)
*(x+3.529913446+.5899647900*I)
*(x+3.529913446-.5899647900*I)
*(x+3.393941022+.6470332197*I)
*(x+3.393941022-.6470332197*I)
*(x+3.233649654+.6822008895*I)
*(x+3.233649654-.6822008895*I)
*(x+3.044607593+.6887116080*I)
*(x+3.044607593-.6887116080*I)
*(x+2.816268339+.6550072229*I)
*(x+2.816268339-.6550072229*I)
*(x+2.515653663+.5543071934*I)
*(x+2.515653663-.5543071934*I)
*x
*(x-0.2004784269e-2+.1487773739*I)
*(x-0.2004784269e-2-.1487773739*I)
*(x-0.1189539813e-1+.2856079052*I)
*(x-0.1189539813e-1-.2856079052*I)
*(x-0.3432771207e-1+.4062773577*I)
*(x-0.3432771207e-1-.4062773577*I)
*(x-0.7002632158e-1+.5103138829*I)
*(x-0.7002632158e-1-.5103138829*I)
*(x-.1173721339+.5980060818*I)
*(x-.1173721339-.5980060818*I)
*(x-.1739845994+.6698138989*I)
*(x-.1739845994-.6698138989*I)
*(x-.2374242621+.7262985211*I)
*(x-.2374242621-.7262985211*I)
*(x-.3054395527+.7680935404*I)
*(x-.3054395527-.7680935404*I)
*(x-.3760247115+.7958756226*I)
*(x-.3760247115-.7958756226*I)
*(x-.4474078326+.8103420954*I)
*(x-.4474078326-.8103420954*I)
*(x-.5180185676+.8121972485*I)
*(x-.5180185676-.8121972485*I)
*(x-.5864546387+.8021445432*I)
*(x-.5864546387-.8021445432*I)
*(x-.6514534771+.7808810285*I)
*(x-.6514534771-.7808810285*I)
*(x-.7118702737+.7490906332*I)
*(x-.7118702737-.7490906332*I)
*(x-.7666621889+.7074332819*I)
*(x-.7666621889-.7074332819*I)
*(x-.8148786817+.6565263745*I)
*(x-.8148786817-.6565263745*I)
*(x-.8556596200+.5969137089*I)
*(x-.8556596200-.5969137089*I)
*(x-.8882472358+.5290139367*I)
*(x-.8882472358-.5290139367*I)
*(x-.9120292837+.4530358765*I)
*(x-.9120292837-.4530358765*I)
*(x-.9266611686+.3688447462*I)
*(x-.9266611686-.3688447462*I)
*(x-.9269197720+0.5929583118e-1*I)
*(x-.9269197720-0.5929583118e-1*I)
*(x-.9309320208+.1727058974*I)
*(x-.9309320208-.1727058974*I)
*(x-.9323966727+.2757887429*I)
*(x-.9323966727-.2757887429*I)
wo man schön die komplexen Nullstellen ablesen kann ...und die 0 ist auch wieder dabei.

Es wird also kein einfaches Verfahren für das Integrieren geben, da selbst das Ergebnis schon so schrecklich aussieht. :wink:
!UD2
Antworten