www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Vorhilfe
  Status Geisteswiss.
    Status Erdkunde
    Status Geschichte
    Status Jura
    Status Musik/Kunst
    Status Pädagogik
    Status Philosophie
    Status Politik/Wirtschaft
    Status Psychologie
    Status Religion
    Status Sozialwissenschaften
  Status Informatik
    Status Schule
    Status Hochschule
    Status Info-Training
    Status Wettbewerbe
    Status Praxis
    Status Internes IR
  Status Ingenieurwiss.
    Status Bauingenieurwesen
    Status Elektrotechnik
    Status Maschinenbau
    Status Materialwissenschaft
    Status Regelungstechnik
    Status Signaltheorie
    Status Sonstiges
    Status Technik
  Status Mathe
    Status Schulmathe
    Status Hochschulmathe
    Status Mathe-Vorkurse
    Status Mathe-Software
  Status Naturwiss.
    Status Astronomie
    Status Biologie
    Status Chemie
    Status Geowissenschaften
    Status Medizin
    Status Physik
    Status Sport
  Status Sonstiges / Diverses
  Status Sprachen
    Status Deutsch
    Status Englisch
    Status Französisch
    Status Griechisch
    Status Latein
    Status Russisch
    Status Spanisch
    Status Vorkurse
    Status Sonstiges (Sprachen)
  Status Neuerdings
  Status Internes VH
    Status Café VH
    Status Verbesserungen
    Status Benutzerbetreuung
    Status Plenum
    Status Datenbank-Forum
    Status Test-Forum
    Status Fragwürdige Inhalte
    Status VH e.V.

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Dt. Schulen im Ausland: Mathe-Seiten:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Mathe-Software" - Matlab Matrix lösen
Matlab Matrix lösen < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Mathe-Software"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Matlab Matrix lösen: Tipp
Status: (Frage) beantwortet Status 
Datum: 23:23 Do 28.05.2015
Autor: Clemens94

Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.

Hiho,

ich möchte eine größere erweiterte Koeffizienten-Matrix mit Matlab lösen - habe damit aber noch nie gearbeitet und taste mich noch langsam mit der Matlab-Hilfe voran.

Das Lösen mit bekannten Werten funktionierte schon einmal. Z.B.:

a11=1
a12=2
a21=3
a22=4
x=1
y=2
[mm] A=\vmat{ a11 & a12 \\ a21 & 22 } [/mm]
[mm] r=\vektor{x \\ y} [/mm]

X=A \ r [mm] =\vektor{0 \\ 0,5} [/mm]

Auch nach dem multiplizieren von a11 und a21 mit den Unbekannten x1 und x2 hat Matlab erfreulicherweise eine symbolische Lösung gelierfert.

[mm] =>X=\vektor{\bruch{-(2*(x2 - 1))}{(2*x1 - 3*x2)} \\ \bruch{(2*x1 - 3)}{(2*(2*x1 - 3*x2)}} [/mm]

Seit ich dies jedoch mit einer 34x34 Matrix -und 23 Unbekannten- probierte, hat Matlab nichts mehr ausgegeben. In der Ecke steht "busy" und ich vermute auch, dass noch gerechnet wird aber das dauert bereits länger als 24 Stunden an.

Ich traue mich nicht das Programm einfach zu beenden, da ich noch immer auf ein Ergebnis hoffe.

Sollte ich nun doch abbrechen und neustarten oder gibt es eine elegantere Möglichkeit die Matrix zu lösen?

Dateianhänge:
Anhang Nr. 1 (Typ: txt) [nicht öffentlich]
        
Bezug
Matlab Matrix lösen: Antwort
Status: (Antwort) fertig Status 
Datum: 00:08 Fr 29.05.2015
Autor: Marcel

Hallo,

> Ich habe diese Frage in keinem Forum auf anderen
> Internetseiten gestellt.
>  
> Hiho,
>  
> ich möchte eine größere erweiterte Koeffizienten-Matrix
> mit Matlab lösen - habe damit aber noch nie gearbeitet und
> taste mich noch langsam mit der Matlab-Hilfe voran.
>  
> Das Lösen mit bekannten Werten funktionierte schon einmal.
> Z.B.:
>  
> a11=1
>  a12=2
>  a21=3
>  a22=4
>  x=1
>  y=2
>  [mm]A=\vmat{ a11 & a12 \\ a21 & 22 }[/mm]

schreibe [mm] [nomm]$\pmat$[/nomm] [/mm] anstatt vmat - das erinnert sonst zu stark
an die Determinante von A.
Es ist also

    [mm] $A=\pmat{ a11 & a12 \\ a21 & 22 }$ [/mm]

>  [mm]r=\vektor{x \\ y}[/mm]
>  
> X=A \ r [mm]=\vektor{0 \\ 0,5}[/mm]
>  
> Auch nach dem multiplizieren von a11 und a21 mit den
> Unbekannten x1 und x2 hat Matlab erfreulicherweise eine
> symbolische Lösung gelierfert.

Wie hast Du das gemacht?

> [mm]=>X=\vektor{\bruch{-(2*(x2 - 1))}{(2*x1 - 3*x2)} \\ \bruch{(2*x1 - 3)}{(2*(2*x1 - 3*x2)}}[/mm]
>  
> Seit ich dies jedoch mit einer 34x34 Matrix -und 23
> Unbekannten- probierte, hat Matlab nichts mehr ausgegeben.

Wird da nun symbolisch gerechnet oder mit konkreten Werten?

Was Dir klar sein sollte: Oben ist A \ r nichts anderes wie

    inv(A)*r

bzw. A^(-1)*r (Matlab-Syntax).

Interessant dabei ist natürlich:

    det(A)

liefert den Wert -2, so dass A wegen [mm] $\det(A) \neq [/mm] 0$ überhaupt invertierbar ist!

> In der Ecke steht "busy" und ich vermute auch, dass noch
> gerechnet wird aber das dauert bereits länger als 24
> Stunden an.

>

> Ich traue mich nicht das Programm einfach zu beenden, da
> ich noch immer auf ein Ergebnis hoffe.

Ich glaube nicht, dass da noch was kommen wird.
  

> Sollte ich nun doch abbrechen und neustarten oder gibt es
> eine elegantere Möglichkeit die Matrix zu lösen?

Du kannst auch alternativ mal Octave (Syntax ist der von Matlab sehr ähnlich
bzw. oft sogar identisch), Scilab oder R mal benutzen. Allerdings weiß ich
bei allen Programmen nicht, wie man symbolisch rechnen läßt.

Bei Matlab gibt es da ein Paket, was man wohl gegen Bezahlung nachladen
kann oder das ggf. in einer entsprechenden Version schon zur Verfügung
steht.

Ist der Code *Geheimsache*, oder kannst Du die Datei einfach mal
hochladen? Ich kann gerne mal reinschauen; allerdings gerade bei
symbolischer Rechnung kann ich nichts wirklich machen - vielleicht
dafür aber jemand anderes.

Edit: Gerade gesehen, dass Du ja 'ne Textdatei angehängt hast!

Oder kannst Du ggf. den Code so verifizieren, dass wir ein Minimalbeispiel
sehen (meinetwegen 8 x 8 Matrix mit 5 Unbekannten).

Das einzige, was mit auf die Schnelle einfällt: Anstatt inv(A) kann man
manchmal die Pseudoinverse pinv(A) gebrauchen.

Da müßte ich jetzt aber selbst nochmal in der linearen Algebra
nachschlagen. Da ich/wir aber Dein konkretes Problem nicht kenne/n,
warte ich lieber mal auf eine Rückmeldung Deinerseits. :-)

Gruß,
  Marcel

Bezug
        
Bezug
Matlab Matrix lösen: Antwort
Status: (Antwort) fertig Status 
Datum: 01:34 Fr 29.05.2015
Autor: Marcel

Hallo,

> Ich habe diese Frage in keinem Forum auf anderen
> Internetseiten gestellt.
>  
> Hiho,
>  
> ich möchte eine größere erweiterte Koeffizienten-Matrix
> mit Matlab lösen - habe damit aber noch nie gearbeitet und
> taste mich noch langsam mit der Matlab-Hilfe voran.
>  
> Das Lösen mit bekannten Werten funktionierte schon einmal.
> Z.B.:
>  
> a11=1
>  a12=2
>  a21=3
>  a22=4
>  x=1
>  y=2
>  [mm]A=\vmat{ a11 & a12 \\ a21 & 22 }[/mm]
>  [mm]r=\vektor{x \\ y}[/mm]
>  
> X=A \ r [mm]=\vektor{0 \\ 0,5}[/mm]
>  
> Auch nach dem multiplizieren von a11 und a21 mit den
> Unbekannten x1 und x2 hat Matlab erfreulicherweise eine
> symbolische Lösung gelierfert.
>
> [mm]=>X=\vektor{\bruch{-(2*(x2 - 1))}{(2*x1 - 3*x2)} \\ \bruch{(2*x1 - 3)}{(2*(2*x1 - 3*x2)}}[/mm]
>  
> Seit ich dies jedoch mit einer 34x34 Matrix -und 23
> Unbekannten- probierte, hat Matlab nichts mehr ausgegeben.
> In der Ecke steht "busy" und ich vermute auch, dass noch
> gerechnet wird aber das dauert bereits länger als 24
> Stunden an.
>
> Ich traue mich nicht das Programm einfach zu beenden, da
> ich noch immer auf ein Ergebnis hoffe.
>  
> Sollte ich nun doch abbrechen und neustarten oder gibt es
> eine elegantere Möglichkeit die Matrix zu lösen?

so, ich konnte das jetzt doch mal testen. Ich würde aber empfehlen, dass
Du Dir mal Gedanken dazu machst, was Du da machst und ob das
überhaupt sinnvoll ist?

Ich habe Dir einfach mal eine *Testschleife* an Deine Datei angehängt. Bei
mir merkt man relativ schnell (k=6, glaube ich), dass Matlab irgendwann
nichts mehr mit der Aufgabe anzufangen weiß...

    [a]Test.m

Gruß,
  Marcel

Dateianhänge:
Anhang Nr. 1 (Typ: m) [nicht öffentlich]
Bezug
                
Bezug
Matlab Matrix lösen: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 21:32 Fr 29.05.2015
Autor: Clemens94

Hallo Marcel,

vielen Dank für Deine Unterstützung.


> was Dir klar sein sollte: Oben ist A \ r nichts anderes
> wie

>

> inv(A)*r

>

> bzw. A^(-1)*r (Matlab-Syntax).

>

> Interessant dabei ist natürlich:

>

>   det(A)

>

> liefert den Wert -2, so dass A wegen $ [mm] \det(A) \neq [/mm] 0 $ > überhaupt invertierbar ist!

Ich hatte die Matrix anfänglich noch ohne die Unbekannten x1..x23 aufgebaut und konnte sie mit Matlab schnell lösen. Mit den Unbekannten hatte ich mir ähnliche Erfolge erhofft.

> Ich glaube nicht, dass da noch was kommen wird.

Da hast du leider Recht behalten.(

> Du kannst auch alternativ mal Octave (Syntax ist der von > Matlab sehr ähnlich
> bzw. oft sogar identisch), ..

Ich wollte es schon einmal mit Octave probieren aber das soll für symbolische Berechnungen ungeeignet sein. In diesem Fall möchte ich mich auf Malab fokussieren.


> Oder kannst Du ggf. den Code so verifizieren, dass wir
> ein Minimalbeispiel sehen (meinetwegen 8 x 8 Matrix mit  > Unbekannten).

Programmieren oder einen Code erstellen kann ich zwar nicht aber hier zumindest noch ein kleines Beispiel.

A = [x1, 2*x2, 3*x3; 3*x4, 4*x5, 5; 2, 5*x2, 1];

r=[2 3 4]';

X=A \ r

X =
           -(16*x2 - 8*x5 - 45*x2*x3 + 48*x3*x5)/(20*x2 - 25*x1*x2 + 4*x1*x5 - 6*x2*x4 - 24*x3*x5 + 45*x2*x3*x4)
         -(17*x1 + 18*x3 + 6*x4 - 36*x3*x4 - 20)/(20*x2 - 25*x1*x2 + 4*x1*x5 - 6*x2*x4 - 24*x3*x5 + 45*x2*x3*x4)
(12*x2 - 16*x5 - 15*x1*x2 + 16*x1*x5 + 6*x2*x4)/(20*x2 - 25*x1*x2 + 4*x1*x5 - 6*x2*x4 - 24*x3*x5 + 45*x2*x3*x4)

> Anstatt inv(A) kann man
> manchmal die Pseudoinverse pinv(A) gebrauchen.

War mir bisher völlig unbekannt und sieht mir noch viel komplizierter aus.

> Da ich/wir aber Dein konkretes Problem nicht kenne/n,
> warte ich lieber mal auf eine Rückmeldung Deinerseits.

Es handelt es sich um eine Gesamtsteifigkeitsmatrix für ein symmetrisches Fachwerk. Die Unbekannten x1...x23 sind jeweils ein Querschnitt für zwei achsensymmetrische Stäbe (+ ein Stab in der Mitte).

Ich wollte somit aus der Matrix für jede Knotenverschiebung eine allgemeine Gleichung erhalten, die von jedem Querschnitt abhängig ist. Das wäre dann in die Restriktionen einer Gewichtsoptimierung eingeflossen.

> so, ich konnte das jetzt doch mal testen. Ich würde aber > empfehlen, dass
> Du Dir mal Gedanken dazu machst, was Du da machst und ob > das überhaupt sinnvoll ist?
> Ich habe Dir einfach mal eine *Testschleife* an Deine
> Datei angehängt.

>

> Bei mir merkt man relativ schnell (k=6, glaube ich),
> dass Matlab irgendwann
> nichts mehr mit der Aufgabe anzufangen weiß...

Es ist wohl eine Sackgasse. Die Testschleife blieb nach k=4 stehen. Beim Bilden der Inversen brach das Programm sogar wegen Speichermangel ab ..

Da das Fachwerk symmetrisch ist, versuche ich jetzt die Matrix weiter zu reduzieren.

Danke nochmal für die Hilfe.

MfG
Clemens  

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Mathe-Software"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.vorhilfe.de