Gleichungssysteme mit PB ausrechnen

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
MJP
Beiträge: 72
Registriert: 14.10.2004 18:45
Wohnort: Nähe Frankfurt/Hessen
Kontaktdaten:

Gleichungssysteme mit PB ausrechnen

Beitrag von MJP »

Hi...,
Ich hätte da gerne mal ein Problem! :mrgreen:
Auf dem Blatt kann ich die Gleichungssysteme ausrechnen aber in PB weis ich halt nicht wie das ganze aussehen soll. :(
Hätte da jemand einen Tipp für mich?

THx MJP :mrgreen:
Alle Reschtsreib feler sind beabsichticht unn kosten nichs echtra ;-D
Visit ---|> http://www.Komani.de/
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Das Codearchiv ist dein Freund. Musst nur wissen das sowas unter "Eval"-Funktionen läuft.
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8820
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Welche Gleichungssysteme meinst du jetzt speziell? Also was willst du ausrechnen?
Polynome?
Integrale?
Stammfunktionen?
Ableitungen?
Quatratische Funktionen?

@Deeem2031: Die Eval-Funktion kann keine Gleichungssysteme lösen, sondern lediglich Terme ohne Variablen ausrechnen.
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

arg, natürlich... vielleicht sollte ich nichtmehr nach Mitternacht posten ;)
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

Code: Alles auswählen

Procedure GaussSolve(*Matrix.l, N.l)
  Protected N, h.f, i, j, k, *Matrix, *Matrix0
  N = N - 1
  
  Dim __matrix.f(N, N - 1)
  *Matrix0 = @__matrix()
  __matrix() = *Matrix
  
  
  For i = 0 To N - 1
    h = __matrix(i, i)
    If h = 0
      __matrix() = *Matrix0
      Dim __matrix.f(0, 0)
      ProcedureReturn 0
    EndIf
    For j = 0 To N
      __matrix(j, i) = __matrix(j, i) / h
    Next
    For j = 0 To N - 1
      If i <> j
        h = __matrix(i, j)
        For k = 0  To N
          __matrix(k, j) = __matrix(k, j) - __matrix(k, i) * h
        Next
      EndIf
    Next
  Next
  
  __matrix() = *Matrix0
  Dim __matrix.f(0, 0)
  ProcedureReturn 1
EndProcedure

#x = 3
#y = 2
Dim Matrix.f(#x - 1, #y - 1)

For y = 0 To #y - 1
  For x = 0 To #x - 1
    Read Matrix(x, y)
  Next
Next

GaussSolve(@Matrix(), #x)

line.s
For y = 0 To #y - 1
  For x = 0 To #x - 1
    line + StrF(Matrix(x, y)) + " "
  Next
  Debug line
  line = ""
Next


DataSection
matrix:
Data.f 7, 2, 3
Data.f 8, 3, 9
EndDataSection
Das ist ein einfacher Lösungsalgorithmus für lineare Gleichungssysteme. Wenn du wissen willst, wies funktioniert, dann Google (Gauss-Algorithmus) oder frag mich...

greetz
remi
Benutzeravatar
MJP
Beiträge: 72
Registriert: 14.10.2004 18:45
Wohnort: Nähe Frankfurt/Hessen
Kontaktdaten:

Beitrag von MJP »

@NicTheQuick
ohhhh sorry! :oops:
ich meinte natürlich lineare Gleichungssysteme

@remi_meier
THx für die Hilfe! :allright:
Sorry, aber ich gehe in die neunte Klasse
Irgendwie ist das für mich Fachchinesisch!
Wie funktioniert das ganze?


@all Thx! MJP :mrgreen:
Alle Reschtsreib feler sind beabsichticht unn kosten nichs echtra ;-D
Visit ---|> http://www.Komani.de/
NetSlayer
Beiträge: 117
Registriert: 21.09.2004 21:18
Kontaktdaten:

Beitrag von NetSlayer »

Hm, stimmt, Matrizen gibts in der neunten Klasse noch nicht.
Hatten wir auch nur, weil uns unsere Lehrerin freundlicherweise erklärt hat, wie unser Taschenrechner unsere linearen Gleichungssysteme löst. Kann ich jetzt aber auch nicht allzu gut erklären, frag lieber wen anders *g*.
...MfG, NetSlayer
"No, I ain't got a problem. It's you with the problem!"
http://netslayer.scpn.net
Antworten