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

Reihenberechnung mit for-Schleife

 

zyx
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 10.04.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.04.2018, 18:23     Titel: Reihenberechnung mit for-Schleife
  Antworten mit Zitat      
Hallo!

Die Aufgabenstellung lautet:

Einen Vektor x mit 100 Punkten zwischen -Pi und Pi erstellen.
Einen gleich großen Vektor y mit Nullen erstellen.
figure erzeugen und y(x) plotten.

Addieren Sie nun in einer for-Schleife von n=0 bis n=6 jeweils eine Teilsumme s(n)
der Reihe für den Sinus
sn(x)=(-1^n)*(n*x^(2n+1))/(2n+1)!
zum vorherigen Wert von y und plotten Sie dann y(x).


Mein Quelltext:
Code:
x=linspace(-pi,pi,100);
y=zeros(size(x));
figure('name','Summen und Schleifen')
plot(x,y)
hold on
s(n)=(-1.^n).*(x.^2.*n+1./factorial(2.*n+1));
    for n = 0:6
        s(n)=sum(s(n));
    end
plot(sin(x),y,'color','green')
hold off


Matlab error: Matrix dimensions must agree

Gibt es eine Möglichkeit den Index als Vektor zu schreiben und das ganze trotzdem so oder so ähnlich zum Laufen zu bringen? Dass also alles für n=0, dann für n=1 usw. berechnet wird?

Vielen Dank im Voraus!
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

ich kann mir zwar denken, was du damit meinst. Du musst dich aber halt an die MATLAB-Syntax halten.

Code:
   for n = 0:6
        y = y + ((-1).^n).*(x.^(2.*n+1))./factorial(2.*n+1);
    end


Der Plot am Ende soll wohl auch eher das sein:
Code:
plot(x,y,'color','green')


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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 10.04.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.04.2018, 21:39     Titel:
  Antworten mit Zitat      
Ich sehe den Wald vor lauter Bäumen nicht mehr Very Happy
Allerdings habe ich das Gefühl grundsätzlich was falsch zu machen...

Ach ja, das unten habe ich in der Aufgabenstellung vergessen zu erwähnen:

Nach der Schleife plotten Sie noch sin(x) in einer anderen Farbe und setzen dann hold auf off.

Danke für den Tipp!
Private Nachricht senden Benutzer-Profile anzeigen
 
zyx
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 10.04.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2018, 19:18     Titel:
  Antworten mit Zitat      
Habe in der Zwischenzeit herausgefunden, dass

Code:
n=[0:6].';
    for n=0
        y=x;
    end
y=y+((-1).^n).*(x.^(2.*n+1))./(factorial(2.*n+1));
y=sum(y)+x;


zumindest mal richtig sein sollte. Aber Wie komme ich zu den einzelnen Teilsummen?
Jemand eine Idee?
Private Nachricht senden Benutzer-Profile anzeigen
 
zyx
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 10.04.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.06.2018, 19:45     Titel:
  Antworten mit Zitat      
Hier der richtige Code:

Code:

x=linspace(-pi,pi,100);
y=zeros(size(x));
figure('name','Summen und Schleifen')
plot(x,y);
hold on

for n = 0:6
    y = y + ((-1)^n)*(x.^(2*n+1))./(factorial(2*n+1));
    plot(x,y);
end


Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

das stand doch fast schon so da?? (16.04.2018, 21:01)

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

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 10.04.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.06.2018, 12:09     Titel:
  Antworten mit Zitat      
Hallo Harald,

ja da hast du Recht, aber ich kann dir jetzt leider auch nicht sagen, was da los war.
Die Rechnungen sind ja gleich.

Ein wesentlicher Teil war aber, dass der plot innerhalb der Schleife stehen muss, um jede einzelne Abfrage auch zu plotten.

Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

Zitat:
Ein wesentlicher Teil war aber, dass der plot innerhalb der Schleife stehen muss, um jede einzelne Abfrage auch zu plotten.

Das ist logisch. Wenn der plot-Befehl nach der Schleife kommt, wird auch nur einmal geplottet.

Grüße,
Harald
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.