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

Summenformel in MATLAB

 

Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.07.2012, 10:43     Titel: Summenformel in MATLAB
  Antworten mit Zitat      
Hallo zusammen,

kann man das folgende Problem ohne for loop lösen?


x(t)=\sum{_{x=0}^{20} \, x \cdot t}


Dann x(t) über t plotten.


MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 13.07.2012, 11:34     Titel:
  Antworten mit Zitat      
Hallo,

bist du sicher, dass die Formel stimmt? Ist der Laufindex wirklich x?

Grüße, Marc
Private Nachricht senden Benutzer-Profile anzeigen
 
dynex
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 13.07.12
Wohnort: ---
Version: R2011a
     Beitrag Verfasst am: 13.07.2012, 15:20     Titel:
  Antworten mit Zitat      
Oh hoppla,

f(t)=...
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 13.07.2012, 15:41     Titel:
  Antworten mit Zitat      
Code:

f=@(t,n) sum([1:n]*t);

oder:

f=@(t,n) t*sum([1:n]);

oder:

f=@(t,n) t*n*(n+1)/2;
 
Private Nachricht senden Benutzer-Profile anzeigen
 
dynex
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 13.07.12
Wohnort: ---
Version: R2011a
     Beitrag Verfasst am: 13.07.2012, 15:52     Titel:
  Antworten mit Zitat      
Vielen Dank,

noch zwei Fragen...
-warum wird hier der function handle benutzt?
-wie kann ich die Funktion über t plotten?
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 14.07.2012, 10:12     Titel:
  Antworten mit Zitat      
Hallo,

"@" habe ich benutzt, um unkompliziert eine Funktion zu definieren. Auf diese Weise lässt sich zudem die obere Schranke für den Laufindex komfortabel steuern.

Um das ganze nun zu plotten, verwende den Plotbefehl. Schau' bei Bedarf in die Hilfe. Der Graph wird allerdings nicht sonderlich spannend sein. Es ist eine simple Gerade.

Grüße, Marc
Private Nachricht senden Benutzer-Profile anzeigen
 
dynex
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 13.07.12
Wohnort: ---
Version: R2011a
     Beitrag Verfasst am: 14.07.2012, 11:39     Titel:
  Antworten mit Zitat      
Also rein mathematisch kann das mit der Geraden nicht stimmen. Allein schon wenn man z.B. die Werte 0 und 10 für t einsetzt kommt keine Gerade heraus.

Da eine Funktion f(t) herauskommen soll, muss man ja auch eine Reihe von Funktionswerten oder einen Vektor herausbekommen.

Also:
f(t)=\sum{_{x=0}^{20}\ \ x \cdot t

f(0) = 0 \cdot 0+1 \cdot 0+2 \cdot 0+...+20 \cdot 0 = 0

f(10) = 0 \cdot 10+1 \cdot 10+2 \cdot 10+...+20 \cdot 10 \neq 0

Wenn ich deinen code z.B: so benutze...

Code:
f=@(t,n) sum([1:n].*t);
F=f(1:10,20);


... bekomme ich den Fehler:

??? Error using ==> times
Matrix dimensions must agree.

Error in ==> @(t,n)sum([1:n].*t)


Es funktioniert also nur wenn die Dimensionen von t und n gleich sind.
Die Formel soll aber für alle Kombinationen von t und n funktionieren.

Ich hab' an dem Ding schon 'ne ganze Weile rumprobiert. Würd' mich sehr freuen wenn es dazu eine Lösung gäbe.
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 14.07.2012, 12:35     Titel:
  Antworten mit Zitat      
Doch, es ist eine Gerade. Ich weiß nicht, wie du darauf kommst, dass deine Zahlenbeispiele dies widerlegen sollen.

Hier ein Codebeispiel, welches funktioniert:

Code:

% Die Variable t kann aus der Summe herausgezogen werden (Distributivgesetz)
f=@(t,n) t*sum([1:n]);

% Definitionsbereich für f
t=[-4,0.01,4];
% Plot für n=20 wie im Ausgangsbeitrag (n=x)
plot(t,f(t,20))
 


Anmerkung: Typische Bezeichnungen für den Laufindex sind in der Regel i,j,k,n. x steht für Variablen aus dem Reellen.
Private Nachricht senden Benutzer-Profile anzeigen
 
dynex
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 13.07.12
Wohnort: ---
Version: R2011a
     Beitrag Verfasst am: 14.07.2012, 14:01     Titel:
  Antworten mit Zitat      
Zitat:
Doch es ist eine Gerade...


Da hast du natürlich recht, irgend wie hatte ich in deine Antwort hineininterpretiert, dass sie parallel zur x-Achse verlaufen würde.

So geht es in der Tat.

Gibt es auch eine Lösung wenn man das Distributivgesetz nicht anwenden kann?

Also für einen solchen Term:

f(t)=\sum{_{n=0}^{20}\ \ n \cdot e^{t \cdot n}}


(In diesem Fall kommt mein Problem aus der Signaltheorie. Zeitdiskrete Signale werden häufig mit x(irgendwas) beschrieben.)
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 14.07.2012, 17:02     Titel:
  Antworten mit Zitat      
Ich wüsste jetzt nicht, wie man dein letztes Beispiel ohne Schleife berechnen kann.
Private Nachricht senden Benutzer-Profile anzeigen
 
dynex
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 13.07.12
Wohnort: ---
Version: R2011a
     Beitrag Verfasst am: 14.07.2012, 17:30     Titel:
  Antworten mit Zitat      
Danke trotzdem. Das hat schon einiges geholfen.
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.