|
|
Befehle solve, round und size |
|
Nimal |

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 21.09.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.10.2009, 00:49
Titel: Befehle solve, round und size
|
 |
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ß
|
|
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 15.10.2009, 10:35
Titel:
|
 |
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.
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?
|
|
|
Nimal |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 8
|
 |
|
 |
Anmeldedatum: 21.09.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.10.2009, 09:22
Titel:
|
 |
Hallo Denny, danke schon mal!
Also "z" ist eine berechnete Variabele in double.
Aber ich habe das Problem schon gelöst...
|
|
|
fidelitas |

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 19.11.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.12.2012, 17:33
Titel: Und die wäre...
|
 |
Und was war denn nun die Lösung?
viele Grüße,
fidelitas
|
|
|
|
|
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.
|
|