|
Blackys |

Forum-Anfänger
|
 |
Beiträge: 46
|
 |
|
 |
Anmeldedatum: 25.04.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.05.2014, 14:22
Titel: Matlab
|
 |
Hallo zusammen
Ich studiere Mathematik und habe jetzt als Programmieraufgabe Simpsonregel mit Matlab bekommen. Da ich noch nie mit Matlab programmiert habe, und wir erst nur 4 Vorlesungen hatten, bin ich jetzt echt frustriert und weiss nicht mehr was ich machen soll. Ich soll für 4,6,8 Schritte berechnen. Ich habe hier etwas zusammenprogrammiert doch es funktioniert nicht. Bitte um Hilfe. WÜrde mich über jeden Tipp freuen. Danke im Voraus
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 01.05.2014, 15:15
Titel:
|
 |
Hallo,
bitte Code-Umgebung verwenden und vor allem schreiben, inwiefern es nicht funktioniert.
Wenn ein String als Funktion aufgefasst werden soll, hilft
Grüße,
Harald
|
|
|
Blackys |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 46
|
 |
|
 |
Anmeldedatum: 25.04.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.05.2014, 15:15
Titel:
|
 |
so habe ich das jetzt ergänzt:
|
|
|
Blackys |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 46
|
 |
|
 |
Anmeldedatum: 25.04.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.05.2014, 15:18
Titel:
|
 |
??? Attempted to access xS(1); index out of bounds because
numel(xS)=0.
Error in ==> Simpson3 at 18
f_werte(k) = 4*F(xS(k));
Das ist die Aktuelle Fehlermeldung nach der Eingabe vom Intervall. Vielen Dank für die Hilfe
|
|
|
Mmmartina |

Forum-Meister
|
 |
Beiträge: 745
|
 |
|
 |
Anmeldedatum: 30.10.12
|
 |
|
 |
Wohnort: hier
|
 |
|
 |
Version: R2020a
|
 |
|
|
 |
|
Verfasst am: 01.05.2014, 17:24
Titel:
|
 |
|
 |
|
Hallo,
mit Codeumgebung ist der Code-button gemeint, den es beim Schreiben von antworten gibt - ohne ist der Test meist entstellt oder mindestens schwerer zu lesen.
Schau die bitte mal die genaue Zuweisung bei einer for-schleife an (-> Matlabhilfe oder skripte/tutorials im Netz).
ist mMn falsch. Denn du sagst, dass du ab n = 4 in 6-er Schritten(!) bis zum Endwert 8 iterieren willst!.
D.h. n bekommt den Wert 4. Damit dürfte mindestens die zweite folgende Schleife Probleme bekommen.
Des weiteren versuche bitte mal Breakpoints zu setzen und schau dir an, was z.B. in den Variablen aus der Zeile die dir die Fehlermeldung ausgibt, steht.
Empfehlenswert ist außerdem
oberhalb deines Quellcodes hinzuschreiben, damit bei auftretenden Fehlern gestoppt wird und du noch nachschauen kannst, was in den Variablen enthalten ist, und warum der Fehler genau auftritt.
_________________
LG
Martina
"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
|
|
|
Blackys |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 46
|
 |
|
 |
Anmeldedatum: 25.04.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.05.2014, 09:07
Titel:
|
 |
Hey, Martina. Danke erstmal für deine Antwort, dass du dich bemüht hast, an meinem Program zu arbeiten.
So müssen wir aber machen, erst für 4, dann für 6 und dann für 8 Schritte. Und dann vergleichen.
Ich habe jetzt das Program etwas verbessert. Kannst du bitte einen Blick drauf werfen?
Es entsteht, nach dem Eingeben von Funktion und den Grenzen, folgender Fehler:
??? Error using ==> inlineeval at 15
Error in inline expression ==> x/(1+x^2)
Matrix must be square.
Error in ==> inline.subsref at 27
INLINE_OUT_ = inlineeval(INLINE_INPUTS_,
INLINE_OBJ_.inputExpr, INLINE_OBJ_.expr);
Error in ==> Simpson7 at 16
yS = F(xS) ; % Funktionswerte an den
Stuetzstellen
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 02.05.2014, 09:32
Titel:
|
 |
ich würde dich nochmal darum bitten die code umgebung zu verwenden.
Sowohl Mmmartina als auch Harald haben dich schon darauf hingewiesen.
grüße winkow
_________________
richtig Fragen
|
|
|
Blackys |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 46
|
 |
|
 |
Anmeldedatum: 25.04.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.05.2014, 09:33
Titel:
|
 |
Hallo
Wie soll es denn aussehen? Ich weiss gerade echt nicht... Und in welcher Zeile genau?
Dankeschön
|
|
|
Mmmartina |

Forum-Meister
|
 |
Beiträge: 745
|
 |
|
 |
Anmeldedatum: 30.10.12
|
 |
|
 |
Wohnort: hier
|
 |
|
 |
Version: R2020a
|
 |
|
|
 |
|
Verfasst am: 02.05.2014, 09:47
Titel:
|
 |
|
 |
|
Blackys hat Folgendes geschrieben: |
So müssen wir aber machen, erst für 4, dann für 6 und dann für 8 Schritte. Und dann vergleichen.
|
Lies bitte nochmal genau das, was ich oben geschrieben habe zu deinem ersten Forschleifenaufruf.
Denn du machst eben NICHT erst für 4, dann für 6, dann für 8 schritte.
Teste es doch mal bitte selber in Matlab.
Aufbau ist folgender:
[Startwert:Schrittbreite:Endwert]
Wenn [1:2:9] da steht, ergibt das die Werte 1,3,5,7,9
Wenn [4:6:8] da steht, ergibt dies: 4
Mehr nicht!
'Du möchtest aber 4, 6, 8 haben. Dazu musst du [4:2:8] angeben.
Nutzt die Breakpoints?
Fehler: es muss mMn rem(k,2) heißen
Bis du sicher, dass du die innere Schleife bis n laufen lassen willst, statt bis n+1 (Anzahl der Stützstellen)? Denn du berechnest dir vor der inneren Schleife die Funktionswerte der Stützstellen (= n+1) um dann in der inneren Schleife diese dort bis end-1 zu überschreiben.
Sollen diese Funktionswerte überhaupt überschrieben werden, oder stattdessen extra gespeichert werden?
UND sollen diese Funtkionswerte für jedem Schleifendurchlauf extra gespeichert werden? Denn derzeit überschreibst du mit jedem weiteren Aufrufen der äußerden Schleife (Werte 6 und 8 ) auch die vorherigen Ergebnisse.
_________________
LG
Martina
"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Zuletzt bearbeitet von Mmmartina am 02.05.2014, 10:22, insgesamt einmal bearbeitet
|
|
|
Blackys |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 46
|
 |
|
 |
Anmeldedatum: 25.04.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.05.2014, 10:13
Titel:
|
 |
Hey, Martina
Vielen Vielen Vielen Dank für deine Hilfe.
Ja, das mit 4:2:8 habe ich jetzt gesehen, war ein bloedes Fehler. Ist ja auch klar so.
Das ist rem ist ganz neu fuer mich, habe ausm Google rausgefischt, wie ich das mit dem Rest machen soll. Das quasi es soll erst mal positive Zahl sein, und dann negative.
Und das mit n habe ich gemacht, weil ich ja den ersten und den letzten Wert separat ausrechne oder meine ich da etwas falsch ?
Danke
|
|
|
Blackys |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 46
|
 |
|
 |
Anmeldedatum: 25.04.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.05.2014, 10:16
Titel:
|
 |
Kommt nun dieser Fehler:
??? Error using ==> inlineeval at 15
Error in inline expression ==> x/(1+x^2)
Matrix must be square.
Error in ==> inline.subsref at 27
INLINE_OUT_ = inlineeval(INLINE_INPUTS_,
INLINE_OBJ_.inputExpr, INLINE_OBJ_.expr);
Error in ==> Simpson7 at 16
yS = F(xS) ; % Funktionswerte an den
Stuetzstellen
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 02.05.2014, 10:29
Titel:
|
 |
Hallo,
verwende komponentenweise Operationen, wie du das zuvor ja schon angedeutet hast:
./ statt / und .^ statt ^
Grüße,
Harald
|
|
|
Blackys |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 46
|
 |
|
 |
Anmeldedatum: 25.04.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.05.2014, 10:45
Titel:
|
 |
Hallo, Harald
Danke fuer deine Antwort.
In welcher Zeile denn?
LG
|
|
|
Blackys |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 46
|
 |
|
 |
Anmeldedatum: 25.04.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.05.2014, 10:46
Titel:
|
 |
das aktuelle Program sieht nun so aus:
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 02.05.2014, 10:57
Titel:
|
 |
Hallo,
und? Funktioniert's? Wenn nicht, wo liegen die weiteren Probleme?
Das schließende Code-Tag muss einen / enthalten, damit die Code-Formatierung angewendet wird.
Grüße,
Harald
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
Einstellungen und Berechtigungen
|
|
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
| RSS
Hosted by:
Copyright © 2007 - 2025
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.
|
|