www.vorwissen.de
Ein Projekt von vorhilfe.de
Das gesammelte Wissen der Vorhilfe
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Teams · Forum · Wissen · Kurse · Impressum
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
Weitere Fächer:

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

Gleichungssystem: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 15:36 Di 01.01.2008
Autor: Plantronics

Hallo,

ich habe folgendes Problem.
Ich bastle mir eine Tabelle mittels
>> Column[Table[{l,
   t = FindRoot[ftanA[l] == Sqrt[V0 - EnA], {EnA, 0.01}],
   FindRoot[ftanB[l] == Sqrt[V0 - EnB], {EnB, 0.01}]}, {l, 20, 22}]]
dies liefert mir auch folgende Tabelle:
{
{{20, {EnA -> 0.30'}, {EnB -> 0.34'}}},
{{21, {EnA -> 0.29'}, {EnB -> 0.38'}}},
{{22, {EnA -> 0.28'}, {EnB -> 0.28'}}}
}
Was ich jetzt noch gerne hätte wäre, eine zusätzliche Spalte mit der SUMME von EnA und EnB, aber ich kann auf diese Elemente nicht mittels EnA+EnB zugreifen, also eine Tabelle wie folgt:
{
{{20, {EnA -> 0.30'}, {EnB -> 0.34'},0.64}},
{{21, {EnA -> 0.29'}, {EnB -> 0.38'},0.67}},
{{22, {EnA -> 0.28'}, {EnB -> 0.28'},0.56}}
}
geht das und wenn ja wie?
Hoffe es kann mir jemand helfen.
Lg, Martin

        
Bezug
Gleichungssystem: Antwort
Status: (Antwort) fertig Status 
Datum: 05:25 Di 08.01.2008
Autor: Peter_Pein

Hi Martin,

FindRoot gibt, wie ja auch zu sehen ist, keine bloßen Werte, sondern eine Liste    mit sog. Rules zurück, die eigentlich dafür gedacht ist, per ReplaceAll Ersetzungen durchzuführen. Ich habe jetzt gerade kein Mathematica griffbereit, deshalb können sich hier kleine Tippfehler einschleichen - sorry:

In einer Liste kann man ja unterschiedliche Datentypen mischen; deshalb schlage ich mal folgendes vor

1: Prepend[Table[ {l, EnA, EnB, EnA+Enb}/.
2:   FindRoot[{ftanA[l] == Sqrt[V0 - EnA], ftanB[l] == Sqrt[V0 - EnB]},{{EnA,.01},{EnB,.01}}],
3: {l,20,22}], {"l","EnA","EnB","EnGesamt"}]


Da muss dann nur noch ein TableForm drauf angewendet werden, um die Teilliste mit den Strings als Tabellenüberschrift auszugeben.

Die Form der Ausgabe musst Du natürlich selber bestimmen. Das Wichtige war eigentlich:

1.) man kann mehrere Gleichungen in mehreren Variablen mit FindRoot simultan lösen und erhält eine Liste von Regeln {EnA->Wert1,EnB->Wert2}, die man
2.) per "/." als Ersetzungsvorschrift für beliebige Ausdrücke - in diesem Fall eine Zeile der Tabelle - verwenden kann/sollte.

Ich hoffe, ein wenig geholfen zu haben,
Peter


Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Mathematica"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.vorwissen.de
[ Startseite | Mitglieder | Teams | Forum | Wissen | Kurse | Impressum ]