Seite 1 von 1

Werte einlesen, Koefizienten rausfinden

Verfasst: Di 1. Mai 2012, 14:59
von rob-g
Hallo liebe Forum-Gemeinde,
ich bin neu hier und habe mich hier angemeldet weil ich ein Problem mit einer Aufgabenstellung habe. Ich bin blutiger Programmier-Anfänger und hatte während des Studiums ein einziges Informatik-Modul bei dem uns der Prof versuchte uns etwas über VBA beizubringen. Mehr als Do..Loop und if..then haben wir allerdings nicht beigebracht bekommen.
In einem anderen Fach (Numerische Methoden) habe ich jetzt eine Aufgabe gestellt bekommen, bei der ich auch programmieren soll. Die Sprache sei egal. Da mein einziger Kontakt mit Informatik VBA war und ich selber kein MS-Office habe, entschied ich mich es mit LibreOffice Base zu probieren.

Die Aufgabenstellung in Kürze:
-Messwerte einlesen (Tabelle mit t- und zugehörigen f-Werten)
-aus den Werten eine Polynom-Funktion erstellen mit Hilfe der "Methode der kleinsten Fehlerquadrate"
-Funktion per Gauss-Integration integrieren

Per Hand kann ich die Aufgabe lösen, das war ja schließlich Inhalt der Vorlesung, aber das zu programmiern ist ewas anderes.
Ich versuche mich jetzt seit ein paar Tagen in Base einzuarbeiten, komme aber nicht besonders gut klar.

Die Anzahl der Messwerte soll variabel sein. Zum Werte einlesen habe ich bisher folgendes probiert:

Code: Alles auswählen

Sub Aufgabe

Dim t as Double				'deklarieren
Dim f as Double				

 n = ""					'Begrenzungen für die Zähler
 m = ""

	for t = 1 to n  				'ablesen der t-Werte
	twerte(t)=cells(1,4+t)			'start bei Zelle B5 (1,4 steht für B5)
	next t

	for f = 1 to m 					'ablesen der f-Werte
	fwerte(f)=cells(2,4+f)			'start bei Zelle C5 (2,4 steht für C5)
	next f

End Sub 'Aufgabe
Wenn ich dieses Makro starte gibt er zummindest keine Fehlermeldung aus. Ist das einlesen so korrekt? Ich habe bei der Suche nach Lösungen öfter mal was über Arrays gelesen. Mir war aber nicht klar ob das der richtige Weg ist um damit weiter zu arbeiten.

Wenn das so korrekt ist, folgt die Aproximation. Dafür muss ich die eine Gleichung erstellen A-Matrix * a-Vektor = b-Vektor und nach dem a-Vektor auflösen, weil da die Koefizienten für das Polynom drin stecken. Per Hand macht man das mit Gauß-Allgorithmus. Muss ich in Base auch einen Gauß-Algorithmus programmieren oder gibt es da so eine art "Solve"- also Auflösen-Funktion?

Wie erstellt man ein Matrix in Base? (kein Witz: ich habe das nirgends verständlich geschrieben gefunden!)

Die Werte in der Matrix und im b-Vektor sind Summen. Wie schreibt Summen in Base? also z.B

Code: Alles auswählen

Summe (twerte(t)^2 * twerte(t)^4) von t=0 bis t=n-1
mit n-1 meine ich den die Anzahl der Messwerte, weil ich ja beim einlesen oben das leere Feld nach dem letzten Messwert mit n bezeichnet habe.

Das sind gerade ne Menge Baustellen bei mir ich weiß. Und ich würde mich über jede Hilfe sehr freuen!

Naja und wenn ich das alles irgndwie hinbekommen habe, denke ich das ich die Gauß-Integration dann hoffentlich ohne Hilfe hinbekomme. Das ist dann ja eigendlich nur noch Formel ausrechnen.

Vielen Dank schonmal fürs Lesen und evtl. Helfen!
Gruß
Rob