WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

unterschiedliche bezeichnungen innerhalb einer matrix

 

spright
Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 12.12.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.01.2012, 16:17     Titel: unterschiedliche bezeichnungen innerhalb einer matrix
  Antworten mit Zitat      
hallo!

ich bin dabei ein programm zu schreiben. es beinhaltet die multiplikation von drei 6x6-Matrizen miteinander. danach wird die inverse der produktmatrix gebildet. es sind also jede menge schritte für matlab zu erledigen...
damit dies schneller geht habe ich mir die einzelnen elemente der produktmatrix ausgeben lassen und wollte diese in mein programm einpflegen,damit es im endeffekt nur noch werte einsetzen muss.
die ausgabe habe ich per fprintf erledigt.

jetzt kommt aber das problem, dass in 26 matrixelementen der ausdruck conj() vorkommt und in den restlichen 10 der ausdruck conjugate(). das programm erkennt aber conjugate nicht. was kann ich dagegen tun, bzw, wieso wechselt er von conj() zu conjugate()?

bin am verzweifeln, bei help kennt er conjugate auch nich sondern nur conj...aber das bringt mich auch nich weiter....
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 02.01.2012, 16:49     Titel:
  Antworten mit Zitat      
Hallo,

poste doch bitte den Programmcode.
Vielleicht auch ein Beispiel, wo dieses "conjugate" auftritt.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
spright
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 12.12.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.01.2012, 17:28     Titel:
  Antworten mit Zitat      
anbei mein programm, das eben diese matrixmultiplikationen und invertierungen macht....

keine angst..das sieht nach mehr aus als es ist...wiederholt sich einiges in dem programm.

hier aber noch grob den aufbau für die ausgabe eines produktmatrixelement:

fid11=fopen('Q11.txt','w');

E1=sym('E1');
E2=sym('E2');
%usw...

class(E1);
class(E2);
%usw...

%Berechnung der benötigten Matrizen;
Q=; %Matrix mit Stoffeigenschaften
TSig_Gesamt=; %=Transformationsmatrix
TSig_Gesamt_inv=inv(TSig_Gesamt);
TSig_Gesamt_invtra=TSig_Gesamt_inv';

%Berechnung der angesprochenen Produktmatrix
Qtrans=TSig_Gesamt_inv*Q*TSig_Gesamt_invtra;

a=char(Qtrans(1,1));

fprintf(fid11,'%s',a);
fclose(fid11);


nun noch zwei ergebnisse die ich erhalte.(dies sind aber nur bruchteile der gleichgungen,die ich erhalte, da sie sehr sehr lang sind...
1. mit conj():
16*conj(mx)^2*conj(my)^6*conj(mz)^8......
2. mit conjugate():
6*conjugate (mx)*conjugate(my)*conjugate(mz)^3*conjugate(nx)^5......

wie gesagt..er berechnet 1. wie 2. mit den selben befehlen...

BerechnungTransformationen_sym.m
 Beschreibung:

Download
 Dateiname:  BerechnungTransformationen_sym.m
 Dateigröße:  5.93 KB
 Heruntergeladen:  804 mal
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 02.01.2012, 17:50     Titel:
  Antworten mit Zitat      
Hallo,

Warum verwendest du keine Schleifen?
Was willst du mit diesen Formeln anfangen?

Wenn du sie in Text umwandelst, kannst du ja auch die Strings nachbearbeiten:
Code:
a = strrep(a, 'conjugate', 'conj');


Falls die Variablen reellwertig sind, solltest du das angeben; dann wird conj wohl gar nicht erst vorkommen.

Grüße,
Harald

P.S.: Bei Beispielen sind möglichst einfache und vor allem lauffähige Beispiele bevorzugt.
Private Nachricht senden Benutzer-Profile anzeigen
 
spright
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 12.12.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.01.2012, 18:12     Titel:
  Antworten mit Zitat      
ja,das mit den schleifen hätte ich noch machen können...hat keinen grund,wieso ich es nicht gemacht habe.

die variablen sind eigtl immer reell,da sollte nie etwas complexes auftauchen. das war auch so etwas,was mich gewundert hat.
wie kann ich das denn angeben?

der sinn der sache ist der, dass ich die formeln eben nachher in ein weiteres programm mit mehrere schleifen einpflegen möchte...ich denke eben, dass das programm schneller rechnet,wenn es die werte nur noch einsetzen muss als dass es bei jedem schleifenschritt mehrfach die inversen bilden muss..

zu meine programm,das ich gepostet habe:
seltsam, bei mir ging es...mir ist natürlich klar das es unsinnig ist, ein nicht funktionierendes programm zu posten.


danke dir sehr für die ,bis jetzt, super schnelle hilfe...bin keine leuchte in matlab und mein laptop wäre heute schon fast ausm fenster geflogen..
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 02.01.2012, 22:17     Titel:
  Antworten mit Zitat      
Hallo,

ein Blick in die Doku hilft:

Code:
E1=sym('E1', 'real');  % etc.


Die expliziten Formeln werden ziemlich komplex werden, da braucht das Einsetzen auch eine Zeit. Ich wage zu behaupten, dass es schneller und vor allem einfacher ist, direkt mit den numerischen Werten zu rechnen.

Was dein Programm angeht: es mag an meinem Rechner hier liegen, aber nach 2 Stunden war es immer noch nicht durchgelaufen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
spright
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 12.12.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.01.2012, 09:27     Titel:
  Antworten mit Zitat      
also,nochmals vielen, vielen dank für die wirklich schnelle und ausführliche hilfe...
hatte in der matlab hilfe gesucht aber wenn man nicht weis, wie man es ausdrücken soll, wirds schwierig.

die elemente werden extrem lang und kompliziert. man kann sie nicht über das command window ausgeben lassen...da kann dann schon sein,dass es ewig dauert. war mein fehler das programm so anzubieten, aber ich wollte auch nichts weglassen, da ich keinen blassen schimmer hatte, was der grund für das problem war.

bin jetzt auch am zweifeln...aber da das nachher inhalt einer schleife ist und die zigtausendmal durchlaufen werden soll, dachte ich, es geht schneller,wenn ich dem programm die schritte der qtrans-matrix-bildung abnehme....sonst müsste es ja jedesmal die inversen neu bilden,was ja auch nich wenig schritte sind. aber wie gesagt,ich zweifle auch ein bisschen daran und werde wahrscheinlich 2 programme parallel laufen lassen um es zu testen....


dann wünsch ich dir noch einen schönen tag und danke nochmals für deine hilfe
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.