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

Berechnungsschleife mit Zahlenänderung

 

mischka89
Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 24.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.10.2011, 20:17     Titel: Berechnungsschleife mit Zahlenänderung
  Antworten mit Zitat      
Hallo,

ich müsste ein Programm in Matlab schreiben, welches als Schleife diese Berechnung macht:
Code:
CA/BCD=0,BACAB BACAB ...

habe leider einige Probleme beim schreiben des Programms, ich weiß leider nicht, wie ich das mit dem "Ansprechen" der einzelnen Werte programmieren soll. Matlab soll immer gleiche Zahlen im Nenner erste Stelle und im Zähler zweite Stelle errechnen, und in der Ausgabe sollte das Programm nur Zahlen in solch einer Reihenfolge, wie oben genannt ausgeben.

Wie bekomme ich sowas hin?

Vielen Dank

Grüße
Private Nachricht senden Benutzer-Profile anzeigen


Kevin
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 93
Anmeldedatum: 18.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.10.2011, 08:38     Titel:
  Antworten mit Zitat      
Hallo,
bitte poste mal ernsthaften code. Ich weiß nichtmal was in der Schleife passieren soll.
Grüße
Kevin
_________________

1000 Buchstaben? Warum nur 6?
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 25.10.2011, 12:14     Titel: Re: Berechnungsschleife mit Zahlenänderung
  Antworten mit Zitat      
Hallo mischka89,

Die Frage ist noch nicht klar. Was bedeuten CA, BCD, BACAB usw?

Zitat:
Matlab soll immer gleiche Zahlen im Nenner erste Stelle und im Zähler zweite Stelle errechnen,

Kannst Du ein paar konkrete Beispiele angeben?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
mischka89
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 24.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.10.2011, 16:58     Titel:
  Antworten mit Zitat      
tut mir Leid, bin neu hier. Das sollte kein Code sein, sondern die Aufgabe, ich müsste eine Schleife einrichten, die nach dieser Aufgabe alle Zahlen von 1 bis 9 in die einzelnen Buchstaben einsetzt und das angegebene Ergebnis in der Reihenolge des Ergebnisses: 0,BACAB BACAB BACAB...... errechnet, bzw. ausgibt. Hier ein Beispiel:
C/B= 0,BBBBBBB... bspw. Kann man nun 1 für C und 3 für B einsetzen, dies gibt dann eine wahre Aussage: 1/3 = 0,333333...., da B die eingesetzte Zahl 3 ist, und auch im Ergebnis wird das Verlangte erreicht 0,333... Das ist jetzt ein sehr einfaches Beispiel mit sehr wenig Möglichkeiten.
Das von mir angefragte Beispiel enthält sehr viele Lösungen, daher wollte ich das in Matlab programmieren, nur bekomme ich das nicht hin.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 25.10.2011, 18:57     Titel:
  Antworten mit Zitat      
Hallo mischka89,

Ja, das ist schon klarer.
Solche Aufgaben tendieren dazu mehr Lösungen zu haben, als es Protonen im Universum gibt. Es lohnt sich also vorher die Menge der Lösungen zu bestimmen um sich im Zweifelsfall 10^32 Jahre Rechenzeit zu sparen.

Die Aussage "1/3 = 0,333333..." ist auf einem Computer übrigens nur sehr schwer überprüfbar, da man dazu eigentlich unendlich viele Stellen benötigen würde.

Die einfachste Methode um "CA / BCD = 0.BACAB BACAB" in Matlab zu fassen ist eine Umwandlung per STRREP und SSCANF. Ein grundlegendes Problem wird aber bleiben, dass die Berechnung der Division nur mit begrenzter Precision ausgeführt wird.
Code:
S = '0.BACABBACAB';
S = strrep(S, 'A', 5);
S = strrep(S, 'B', 6);
S = strrep(S, 'C', 7);
N = sscanf(S, '%f');

Um Rundungsfehler zu vermeiden kann es sinnvoll sein mit einer Zehnerpotenz zu multiplizieren um Integer-Werte zu erhalten. Das funtioniert bis 2^53. Ansonsten läßt sich das natürlich auf symbolisch lösen:
"CA" bedeutet ja nichts anderes als "10*c + 1*a", so dass es sich eventuell nur um das Finden von Lösungen linearer Gleichungssysteme handelt.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
mischka89
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 24.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.10.2011, 20:29     Titel:
  Antworten mit Zitat      
vielen Dank dir für die schnelle Hilfe, wie könnnte ich nun noch die Zahlen die für die Buchstaben eingesetzt werden, in eine Schleife packen, und Matlab am besten irgendwie sagen, dass er mir nur die richtigen Ergebnisse ausgeben soll, sprich,
-wenn Nenner B als erste und letzte Zahl in den ersten 5 Buchtsaben hinter dem Komma erscheint
-wenn im Zähler A als zweite und vierte Zahl in den ersten 5 Buchtsaben hinter dem Komma erscheint
-wenn im Zähler Position eins und Nenner Position zwei C als dritte Zahl in den ersten 5 Buchtsaben hinter dem Komma erscheint

Ich habe zwar die Idee, wie das ungefähr gehen soll, doch leider kann ich das nicht programmieren, mir fehlt die Erfahrung.
Könntet ihr mir helfen?

Vielen Dank
Private Nachricht senden Benutzer-Profile anzeigen
 
mischka89
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 24.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.10.2011, 12:57     Titel:
  Antworten mit Zitat      
kann mir denn keiner helfen ?
Private Nachricht senden Benutzer-Profile anzeigen
 
mischka89
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 24.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.11.2011, 00:19     Titel:
  Antworten mit Zitat      
up
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 01.11.2011, 13:44     Titel:
  Antworten mit Zitat      
Hallo mischka89,

Dein Problem ist sehr speziell, es wird also nur wenige Leute geben, die sich damit beschäftigen.
Auf der anderen Seite sind solche Probleme im Allgemeinen bereits mit Bleistift und Papier lösbar. Die Methoden zur Lösung in Matlab wurden hier bereits genannt, Du müsstest sie also nur noch anwenden. Und schließlich scheinen ein paar der Aussagen zu zeigen, dass Du das Problem selbst noch nicht ganz überschaust, z.B. "1/3 = 0,333333..." Das läßt sich nämlich auf einem Rechner nicht ohne weiteres überprüfen, da die Genauigkeit auf 16 Stellen begrenzt ist.

Deswegen bezweifele ich, dass jemand die Frage beantworten wird. Wenn Du recht genau weißt, was Du möchtest, es aber nicht programmieren kannst, wäre dies ein Fall für die Kategorie "Programmieraufträge". Bei angemessener Aufwandsentschädigung findet sich eher jemand, der ein Problem löst, dass für ihn eigentlich nicht interessant ist.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
mischka89
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 24.10.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.11.2011, 14:45     Titel:
  Antworten mit Zitat      
okay, habe nicht gedacht dass das der Fall ist.

Werde es aber lieber nochmal selber probieren, trotzdem, vielen Dank dir Jan
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 - 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.