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

Differentialoperator Matrix

 

FSchooler
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 01.04.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.04.2020, 20:22     Titel: Differentialoperator Matrix
  Antworten mit Zitat      
Hallo liebe Community,
da ich im Internet sonst nichts gefunden habe, frage ich hier.
Gibt es in Matlab eine Art Differentialoperator Matrix oder eine Funktion die das bewerkstelligt? Aussehen sollt das ganze so:
  \begin{pmatrix} d_1 & 0 \\ 0 & d_2 \\ d_2 & d_1 \end{pmatrix}   * 3x8 Matrix
(sorry für die komische 2. Zeile, aber ich bekomm das mit dem Formel Editor nicht besser hin). Dabei bedeutet  d_1 die partielle Ableitung nach der ersten Variable usw.
Das ganze soll dann auf eine 3x8 Matrix in der die abzuleitenden Funktionen stehen angewendet werden. Vermutlich wird es so eine Matrix nicht geben, weiß dennoch jemand eine Lösung?
Vielen Dank schonmal und Liebe Grüße
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.04.2020, 20:29     Titel:
  Antworten mit Zitat      
Hallo,

mir ist nicht bekannt, dass es sowas gibt, aber ich würde es halt selbst programmieren.
In der Matrix stehen tatsächlich Funktionen? Also ein Cell Array von Function Handles, symbolische Ausdrücke, oder etwas ganz anderes?
Was soll denn das Ergebnis sein? 3x2 * 3x8 passt ja nicht zusammen...

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
FSchooler
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 01.04.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.04.2020, 21:24     Titel:
  Antworten mit Zitat      
Hallo Harald,
natürlich muss es eine 2x8 Matrix sein, da hab ich mich wohl verschrieben.
In dieser sollten dann Ansatzfunktionen wie 1/4 * (r-1)*(s-1) für ein billineares
Scheibenelement stehen. Diese sollen dann partiell nach den verschiedenen Variablen abgeleitet werden und in dann in einer 3x8 Matrix stehen.
Grüße
Fabian
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.04.2020, 21:38     Titel:
  Antworten mit Zitat      
Hallo,

bitte alle Rückfragen beantworten: ist die Matrix...
Zitat:
ein Cell Array von Function Handles, symbolische Ausdrücke, oder etwas ganz anderes?


Weitere Frage: sollen die Operatoren angewendet und dann im Stile einer Matrixmultiplikation aufsummiert werden?

Und wie gesagt: es wird nicht erspart bleiben, das selbst zu programmieren. Je mehr Gedanken du dir darüber schon gemacht hast, auf denen man aufbauen kann, desto besser wäre es.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
FSchooler
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 01.04.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.04.2020, 12:17     Titel:
  Antworten mit Zitat      
Hallo Harald,
die Matrix besteht zunächst aus symbolischen Funktionen, denen später per subs Werte zugewiesen werden.
Code:

syms r s
h_fkt=1/4*[(r-1)*(s-1), (r+1)*(1-s), (r+1)*(s+1), (1-r)*(s+1)]
h=[h_fkt(1), 0, h_fkt(2), 0, h_fkt(3), 0, h_fkt(4), 0;
0, h_fkt(1), 0, h_fkt(2), 0, h_fkt(3), 0, h_fkt(4)]
 

Ich möchte nun quasi die Differentialoperatoren auf die h Matrix im Sinne einer Matrix Multiplikation anwenden.
Dies sollte so geschehen, dass dabei eine 3x8 Matrix entsteht. Aber es stimmt, das werde ich mir wohl programmieren müssen.
Grüße
Fabian
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.04.2020, 12:25     Titel:
  Antworten mit Zitat      
Hallo,

Vorschlag für das spezielle Problem:

Code:
for k = 1:size(h, 2)
    erg(:,k) = [diff(h(1,k), r)     +      0;
                     0              +    diff(h(2,k), s);
                diff(h(1,k), s)     +    diff(h(2,k), r)];
end


Automatisiertes Umsetzen für andere Operatoren erscheint mir schwierig.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
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.