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

Befehle solve, round und size

 

Nimal
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 21.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.10.2009, 00:49     Titel: Befehle solve, round und size
  Antworten mit Zitat      
Hallo,
mein Problem ist die Interpretation eines Skriptes:

Skript:

1.sol=solve(Funktion,x)
2.ind=round(size(sol,1)/2+0.5)
3.y(round(z*10+11))

Zeile 1: ist klar, die Funktion nach x Lösen; es sind mehrer Lösungen vorhanden.

Zeile 2: den Wert in Integer wandeln (ind), aber was passiert dann, gerade warum "/2+0.5"??

Zeile 3: wieso "*10+11"??


Und jetzt noch eine andere Frage:
Ich habe eine Funktion wo der Solve Befehl "rootOf..." ausgibt und daher ist eine analytische Lösung nicht möglich. Um es numerisch zu lösen, habe ich ein Problem, ich habe 2 Variabeln und eine Abhängige. Ich möchte die Abhängige in einem Wertebereich Lösen und dazu muss ich in dem Solve Befehl eine Variabele mit -1:0.1:1 eingeben, aber das lässt der nicht zu.
Wie kann ich hier eingeben??

Danke, schon mal im Voraus für eure Antworten.

Gruß
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 15.10.2009, 10:35     Titel:
  Antworten mit Zitat      
Hallo,

zu Zeile2: Das bedeutet, dass man immer nach oben abrunden möchte.
2.2+0.5 = 2.7 => 3
1.7+ 0.5 = 2.2 => 2

Dieses Prinzip wird in C-Programmierung angewendet.
Im Matlab existiert dafür aber Extra Befehl, und die Zeile könnte man so verändern.
Code:

ind = ceil( size( sol,1 )/2 )
 

PS:
Einen Seiteneffekt passiert hier leider
und führt zu einem Fehler
1.0 +0.5 => 1.5 => 2 sollte aber 1 bleiben

round in Matlab rundet schon ab 0.5 auf
während in C erst ab 0.51 aufgerundet wird.
Ich meine folgendes:
1.49 => in C = 1 => in Matlab = 1
1.5 => in C = 1 => in Matlab = 2
1.51 => in C = 2 => in Matlab = 2

In Matlab sollte man in so einem Fall unbedigt ceil nutzen

zu Zeile3: ist unklar, da braucht schon mehr Kontext um es zu verstehen.
was ist z?
Private Nachricht senden Benutzer-Profile anzeigen
 
Nimal
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 21.09.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.10.2009, 09:22     Titel:
  Antworten mit Zitat      
Hallo Denny, danke schon mal!

Also "z" ist eine berechnete Variabele in double.

Aber ich habe das Problem schon gelöst...Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
fidelitas
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 19.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.12.2012, 17:33     Titel: Und die wäre...
  Antworten mit Zitat      
Und was war denn nun die Lösung?

viele Grüße,

fidelitas
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.