Quanten.de Diskussionsforum

Quanten.de Diskussionsforum (http://www.quanten.de/forum/index.php5)
-   Plauderecke (http://www.quanten.de/forum/forumdisplay.php5?f=5)
-   -   Math - Gauss Approximation (http://www.quanten.de/forum/showthread.php5?t=912)

richy 09.12.08 03:55

Math - Gauss Approximation
 
Hi
Nachdem meine Fibonacci Integraltransformation nun doch eher in die Hose ging moechte ich das Thema nochmals ueber eine Reihenapproximation ueber die Methode von Gauss angehen.

Ob sich etwas brauchbares aus den Berechnungen ergibt weiss ich allerdings noch nicht.
Die Gauss Approximation ueber die Methode der kleinsten Quadrate habe ich auf meiner Homepage schon vorgestellt :
http://home.arcor.de/richardon/richy...uss/gindex.htm

Die Ergebnisse dort moechte ich zunaechst allgemeiner zusammenfasen :


> # Konkretisierte allgemeine Beschreibung fuer eine linearen Synthesefunktion
> # ************************************************** **********
> # Eine Funktion f(x) soll ueber eine Funktion s(a1,a2..an,x)
> # ueber die Methode kleinster Quadrate approximiert werden
> # Konvention
> # 1) Wir bezeichen Zeilen mit p und Spalten mit i
> # 2) Wir bestimmen eine Zeilefunktion zf(p)
> # zf(p)=ds(a1,a2..an,x)/dp
> # 3) Wir bestimmen eine Spaltenfunktion sf(i)
> # sf(p)=ds(a1,a2..an,x)/di
> # 4) Fuer jedes Elemen der Matrix A(p,i) bilden wir nun
> # Integral( zf(p,x)*sf(i,x),x),x=alpha..beta)
> # 5) Wir bilden ein Residuum res(p)
> # res(p)= Integral(zf(p)*f(x),x=alpha..beta)
> #
> # 6) Wir waehlen alpha und beta unter Aspekten der Orthogonalitaet
> # nicht zwingend notwendig !
> # 7) Wir Loesen das GL-System nach a1..an auf
> # *******************************************
> Numerische Vereinfachungen :
> # 8) zu 7)
> # Wir versuchen alpha und betha so zu bestimmen dass die
> # Basisfunktionen ihre Ausblendeigenschaft erhalten.
> # 9) Wir orthogonalisieren die Basifunktionen fuer alpha,beta
> # In diesen Faellen bleibt lediglich die Hauptdiagonale der Matrix A
> # mit Werten ungleich 0 besetzt.
> # Die Matrix muss daher auch nicht mehr invertiert werden.

Diesmal moechte ich also genauer und allgemeiner vorgehen als
im Fibonacci Transformation Thread.
Ich hoffe bis jetzt ist noch alles verstaendlich.
Im Prinzip ja auch kein Hexenwerk.

Das ist alles nur Vorbereitung fuer den Fibonacci Reihen Thread,

richy 10.12.08 14:05

AW: Gauss Approximation
 
Hi
Die Gaussche Fehler Approximation fuehrt dann zu eine Matrix Gl folgender Form :

A*a=re
A stellt eine Matrix dar.
a stellt einen Vektor der Parameter a1,a2,a3 ... dar
re stellt einen Vektor eines Integrals der zu approximierenden Funktion dar

Die oben beschriebene Matrixform ist vor allem sinnvoll um fuer lineare Synthesefunktionen s(a,x) eine Uebersicht zu gewinnen.
Zwingend notwendig ist diese Darstellungsweise nicht.
Ueber Gauss lassen sich auch nichtlineare Approximationen erstellen.

Der Systematik wegen hier zunaechst mal ein lineares Beispiel in der Matrixform :
Als Syntesefunktion soll eine Summe von n Sinusschwingungen verwendet werden. Die Optimierungsparameter sollen deren Amplituden a_n sein. Der zugeordnete Parameter der Synthesefunktionen die Frequenzen der Schwingungen.

Beispiel:
s:=sum(a[i]*sin(i*x),i=1..4);
(x=2*Pi ist somit die Periodendauer)

Wir bilden die A Matrix wie oben beschrieben:
Zitat:

2) Wir bestimmen eine Zeilenfunktion zf(p)
> # zf(p)=ds(a1,a2..an,x)/dp
> for p from 1 to 4 do
> zf[p]:=diff(s,a[p]);
> od;

ergibt :

zf[1] := sin(2 pi x)
zf[2] := sin(4 pi x)
zf[3] := sin(6 pi x)
zf[4] := sin(8 pi x)

Zitat:

> # 3) Wir bestimmen eine Spaltenfunktion sf(i)
> # sf(p)=ds(a1,a2..an,x)/di
Fuer eine lineare Approximation gilt sf(k)=zf(k);

Zitat:

4) Fuer jedes Elemen der Matrix A(p,i) bilden wir nun
> # Integral( zf(p,x)*sf(i,x),x),x=alpha..beta)
> for p from 1 to 4 do
> for i from 1 to 4 do
> A[p][i]:=(int(zf[p]*sf[i],x=alpha..beta));
> od; > od;

Das wars auch schon :-)

Waehlen wir als Integrationsgrenzen
alpha=0
beta=1
erhalten wir fuer die A Matrix gerundet :

.2726 .3972 .3219 .1194
.3972 .5946 .5166 .2506
.3219 .5166 .5232 .3738
.1194 .2506 .3738 .4381

Und das Gleichungssystem A*a=res zu loesen muessen wir die Matriy A invertieren.

AUSBELNDEIGENSCHAFT
*******************
Nun waehlen wir :

alpha=0
beta=2*Pi

und erhalten fuer die A Matrix gerundet :

3.1415 0.0000 0.0000 0.0000
0.0000 3.1415 0.0000 0.0000
0.0000 0.0000 3.1415 0.0000
0.0000 0.0000 0.0000 3.1415

Hallelulja :D
Wir muessen die Matrix A also nicht mehr invertieren !
Das ist die Eigenschaft der harmonischen Funktion, die man
als Ausblendeigenschaft bezeichnet. Die Funktionen sind orthogonal.

Man kann sich die Eigenschaft des Integrals entweder graphisch veranschaulichen oder am besten im Bildbereich der Fouriertransformierten ueber die Faltung.

Die komplexe Exponentialfunktion f(x)=exp(j*x) weist ebenfalls die Ausblendeigenschaft auf. Und das ist eine der ausgezeichneten
Eigenschaften dieser Funktionen.
Und mit der Methode der kleinsten Quadrate von Gauss sieht man dies besonders schoen.

Nun sollte man aber nicht vergessen, dass diese Ausblendeigenschaft
abgesehen von der technischen Anwendung nur die Berechnung vereinfacht.
Die Approximation wird damit keinesfalls genauer.

Im Gegenteil :
Je kleiner ich das Integrationsintervall alpha..beta waehle umso genauer wird dort die Approximation.

Ueber Gauss kann man nun fuer s(a,x) beliebige Funktionen waehlen.
Natuerlich auch eine Fibonacci Reihe.

ciao

richy 10.12.08 15:36

AW: Gauss Approximation
 
Randbemerkung

Die Sinusfunktion ist

a) eine ungerade Funktion
b) eine periodische Funktion
c) Funktion mit den Nullstellen k*Pi

Die approximierte Funktion wird die selben Eigenschaften aufweisen.

Einschraenkung a) laesst sich vermeiden imdem man zur komplexen Exponentialfunktion uebergeht. cos(kx)+i*sin(kx)


Einschraenkung b) laesst sich nur durch den Uebergang zu einer Inegraltransformation loesen.

Die komplexwertige Fibonaccifolge ist eine gewichtete komplexe Exponentialfunktion.
Einschraenkung a) muesste man loesenkoennen.
Die Funktion ist aber aufgrund der Gewichtung nicht periodisch.
Dies wird den Nachteil haben, dass die Approximation nur im Approximationsintervall eine gute Approximation darstellt.

c) wird ein Problem sein denn man wird die Funktion nur bis Pi optimieren koennen und das ist natuerlich bischen wenig.
BTW
Ein Trick koennte es sein die Fouriertransformierte der Fib Folge zu berechnen und damit weiterzuarbeiten.

richy 10.12.08 16:13

AW: Gauss Approximation
 
Bisher lautet der Maplecode einer allgemeinen Gauss Appoximation :

> restart; with(linalg):
> N=4 # Grad der Approximation
> A:= matrix(N,N+1):
> # Zielfunktion (Beispiel Sinus)
> f(x):=sin(x);
> # Synthesefunktion (Beispiel Sinus)
> s:=sum(a[i]*sin(i*x),i=1..N);
> #******************************
> # Bestimmen der Zeilenelemente zf(p) und Spaltenelemente
> for p from 1 to N do
> zf[p]:=diff(s,a[p]);
> sf[p]:=zf[p];
> od;
> # Aufbau Der A Matrix
> alpha:=0;
> beta:=2*Pi;
> for p from 1 to N do
> for i from 1 to N do
> A[p][i]:=(int(zf[p]*sf[i],x=alpha..beta));
> od; od;

Es fehlen noch die Elemente des Residuums

> for i from 1 to N do
> res[i]:=int(sf[i]*f(x),x=alpha..beta);
> A[i,N+1]:=res[i]; # Fuer Loesungsverfahren
> od;

Liegt die Zielfunktion als Messwerte vor oder ist das Integral nicht loesbar wir man numerisch integrieren.

Und nun noch das Aufloesen des Gleichungssystems :
Mlsg:=rref(A):
Loesung ausgeben :

> for i from 1 to N do
> a[i]:=Mlsg[i,N+1];
> od;

Ergebnis drucken ;

plot(s,x=0..2*Pi);

Ferdisch ;-)
Fuer das obige Beispiel erhaelt man natuerlich
a1=1
und der Rest ist Null

richy 11.12.08 15:54

AW: Gauss Approximation
 
Dass die Fib Funktion komplexwertig ist bereitet mir gerade Probleme.
Ich will keine gewichtete sinus cosinus Reihenapproximation sodern eine fib Approximation.
Hat jemand eine Idee ?
Ich koennte den Betrag verwenden. Letztendlich sind fuer ganzzahlige Argumente die Fib Zahlen reell.

Und ich sehe noch eine Schwierigkeit.
Ich werde bei den Fib Zahlen sehr schnell in astronomische Zahlenbereiche geraten.

Gerade mal getestet.
Das ganze scheint dennoch bedingt zu funktionieren.

Jogi 11.12.08 17:31

AW: Gauss Approximation
 
Zitat:

Zitat von richy (Beitrag 30632)

Und ich sehe noch eine Schwierigkeit.
Ich werde bei den Fib Zahlen sehr schnell in astronomische Zahlenbereiche geraten.

Hat jemand eine Idee ?

Kannst du eine Funktion für Exponenten finden?
Damit blieben die Ausdrücke handlicher.


Gruß Jogi

richy 11.12.08 17:40

AW: Gauss Approximation
 
Hi Jogi

Was meinst du mit Funktion fuer Exponenten ?
Was ich tun kann ist natuerlich die modifizierte Fib Zahlen zu verwenden.
Die ohne den starken Wachstumsterm A.
Einige Ausdruecke waren da ja sogar von -00-00 konvergent.

Den Betrag von fib(x) zu verwenden klappt momentan nicht.

Aber die komplexen Amplituden sind auch nicht das was ich mir vorstelle.
Ich muss das mit den Symetrieeigenschaften noch genauer untersuchen.
Alles in gerade und ungerade Anteile zerlegen.

ciao

Jogi 11.12.08 17:52

AW: Gauss Approximation
 
Zitat:

Zitat von richy (Beitrag 30636)
Hi Jogi

Was meinst du mit Funktion fuer Exponenten ?

Um extrem große Zahlen darzustellen bedient man sich doch der Exponentialschreibweise.

10^2 , 10^3 ..... 10^482...

Wenn es gelingt, für die Exponentenwerte eine Funktion zu finden, lassen sich doch extrem große Zahlen besser handlen, oder?

Na ja, ist vielleicht nicht das was du suchst, war nur so 'ne Idee.:o


Gruß Jogi

richy 12.12.08 01:37

AW: Gauss Approximation
 
Hi Jogi
Ich hab schon dran gedacht das ganze zu logarithmieren.
10^400 ist gar nicht so abwegig.
Wenn ich bis x=10 integriere und nehme 1 , 2, 3 ... 10 fache des Arguments als (Oberwellen) bin ich schon bei 10^44.
Auch aus anderen Gruenden waere mir k+x statt k*x auch lieber. Also veschobene Fib Folgen.

Ich muss das ganze nochmal gruendlich ueberlegen.
Ich erhalte wie bei der sinus cosinus Reihenapproximation (exp(I*k*x)) komplexe Koeffiziente a[i]. Auch c[i] genannt.
Verwndet man cos(x) + i*sin(x) im orthogonalen Intervall 0..Pi, so approximiert cos(x) den geraden Anteil und i*sin(x) i*den ungeraden Anteil.
Ich benutze aber f(x)*(cos(x) + i*sin(x)). Da muesste ich erst den ungeraden und geraden Anteil ermitteln. Muss ich das uebehaupt ?
Was aber auch kein Problem waere :
g(x)_gerade = (g(x)+g(-x))/2
g(x)_ungerade = (f(x)-f(-x))/2

Aber die Funktion f(x)*(cos(x) + i*sin(x)) ueber die ich integriere ist sicherlich nicht orthogonal.
Das will ich zunaechst nochmal pruefen.
Mit dem bisherigen Programm auch kein Prob.

ciao

Jogi 12.12.08 08:24

AW: Gauss Approximation
 
Hi richy.

Ähem, alles klar...
du wirst schon wissen was du tust.

Denkst du aber auch noch an meine Grav.-Wellen?
Oder hast du die PN noch gar nicht gesehen?


Gruß Jogi


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:48 Uhr.

Powered by vBulletin® Version 3.8.8 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
ScienceUp - Dr. Günter Sturm