goMatlab - Mein MATLAB Forum

Mein MATLAB Forum

 
Login  | Registrieren
Bücher:

Digitale Signalverarbeitung in der Nachrichtenübertragung

Fachkräfte:
Testingenieur (w/m) Testframework für Simulink-basierte Echtzeitanwendungen
Pflege des MATLAB/Simulink-Testframeworks, Spezifizieren von Testkriterien, Testfällen und Testszenarien
dSPACE GmbH - Paderborn

Softwareentwickler MATLAB/Simulink (w/m)
Erarbeitung von Lösungen im Bereich der Schnittstelle zum Simulink-Modell und der Benutzeroberfläche von TargetLink
dSPACE GmbH - Paderborn

Testingenieur (w/m) Konfigurationswerkzeuge für Echtzeitsysteme
Einbinden von Simulink®-Simulationsmodellen, Verteilung der Simulationsmodelle auf Multicore- und Multiprozessorsysteme
dSPACE GmbH - Paderborn

Entwicklungs-Ingenieure (m/w), BLDC Motoren und Steuerung
Entwicklung von Steuerstrategien für sensorlos betriebene Motoren
ixetic Bad Homburg GmbH - Bad Homburg

Ingenieur modellbasierte Entwicklung/Embedded Programmierung (w/m)
Organisation und Durchführung von Projekten zur Integration von TargetLink in aktuelle Entwicklungsprozesse
dSPACE GmbH - Böblingen bei Stuttgart

weitere Angebote

Partner:




Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Nullstelle der Funktion berechen

 

grueßdichmeiner
Forum-Anfänger
Forum-Anfänger

Beiträge: 19
Anmeldedatum: 16.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.02.2012, 13:12     Titel: Nullstelle der Funktion berechen
  Antworten mit Zitat      
Hallo,

ich habe folgendes Problem:
ich abe eine Funktion deren Nullstelle ich berechen möchte, h entspricht in der Funktion x.

Gleichung:
Code:

F_N= (pi*(p.r_12)*p.pf*h.*(p.kappa_A-p.kappa_p))-p.F_H0
 


Weiß jemand wie ich das machen könnte?
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Forum-Meister
Forum-Meister

Beiträge: 593
Anmeldedatum: 04.11.11
Wohnort: ---
Version: R2011a
     Beitrag Verfasst am: 01.02.2012, 14:00     Titel:
  Antworten mit Zitat      
Code:
Private Nachricht senden Benutzer-Profile anzeigen
 
grueßdichmeiner
Themenstarter

Forum-Anfänger
Forum-Anfänger

Beiträge: 19
Anmeldedatum: 16.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.02.2012, 10:01     Titel:
  Antworten mit Zitat      
Hallo,

danke erstmal für die antwort,
diese Möglichkeit habe ich auch schon gefunden, allerdings habe ih damit ein bisschen Schwierigkeiten:
ich habe nicht die vollständige Gleichung angegeben,
Komplett wäre es:

Code:

F_N=((pi*(p.r_12)*p.pf*h.*(p.kappa_A-p.kappa_p))-p.F_H0)+diag(p.aD*sqrt((p.m_12)*(2/3)*p.E*(p.r_12^(1/2)))*h.^(1/4)*v.')
 


Wobei v ein Vektor ist.

v und h habe ich als differenzialgleichungssystem gelöst.
also habe ich mein programm erstmal durchlaufen lassen und dann fzero benutzt:

Code:

function y = funktion1(x)
y=((pi*(p.r_12)*p.pf*h.*(p.kappa_A-p.kappa_p))-p.F_H0)+diag(p.aD*sqrt((p.m_12)*(2/3)*p.E*(p.r_12^(1/2)))*h.^(1/4)*v.')
 


ich bekomme aber die Fehlermeldung, dass ich den function-Befehl an dieser Stelle nicht benutzen kann...
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Forum-Meister
Forum-Meister

Beiträge: 593
Anmeldedatum: 04.11.11
Wohnort: ---
Version: R2011a
     Beitrag Verfasst am: 02.02.2012, 10:07     Titel:
  Antworten mit Zitat      
Code:

f=@(h) ((pi*(p.r_12)*p.pf*h.*(p.kappa_A-p.kappa_p))-p.F_H0)+diag(p.aD*sqrt((p.m_12)*(2/3)*p.E*(p.r_12^(1/2)))*h.^(1/4)*v.')
 
Private Nachricht senden Benutzer-Profile anzeigen
 
grueßdichmeiner
Themenstarter

Forum-Anfänger
Forum-Anfänger

Beiträge: 19
Anmeldedatum: 16.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.02.2012, 10:22     Titel:
  Antworten mit Zitat      
Kannst du mir sagen wo ich das einbinden müsste? Und würde ich dann weiter machen mit
Code:

x0=0; [NST FWERT]=fzero(@f , x0);
 

?
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Forum-Meister
Forum-Meister

Beiträge: 593
Anmeldedatum: 04.11.11
Wohnort: ---
Version: R2011a
     Beitrag Verfasst am: 02.02.2012, 10:57     Titel:
  Antworten mit Zitat      
beispiel :
Code:
f=@(x) sin(x);
x0=fzero(f,2)
Private Nachricht senden Benutzer-Profile anzeigen
 
grueßdichmeiner
Themenstarter

Forum-Anfänger
Forum-Anfänger

Beiträge: 19
Anmeldedatum: 16.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.02.2012, 11:06     Titel:
  Antworten mit Zitat      
Also ich habs jetzt so gemacht:
Code:

f=@(h) ((pi*(p.r_12)*p.pf*h.*(p.kappa_A-p.kappa_p))-p.F_H0)+diag(p.aD*sqrt((p.m_12)*(2/3)*p.E*(p.r_12^(1/2)))*h.^(1/4)*v.')

h0=fzero(f,2)
 


und bekomme diese Fehlermeldung:

??? Operands to the || and && operators must be convertible to logical scalar values.

Error in ==> fzero at 323
elseif ~isfinite(fx) || ~isreal(fx)

Error in ==> Viskoelastisch_plastischer_Stoss_Hauptprogramm at 154
h0=fzero(f,2)

Ich bin mir nicht sicher, ob er das erkennt; weil er diese Befehlszeile im Command Window bricht. Das sieht dann so aus:

f =

@(h)((pi*(p.r_12)*p.pf*h.*(p.kappa_A-p.kappa_p))-p.F_H0)+diag(p.aD*sqrt((p.m_12)*(2/3)*p.E*(p.r_12^(1/2)))*h.^(1/4)*v.')
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Forum-Meister
Forum-Meister

Beiträge: 593
Anmeldedatum: 04.11.11
Wohnort: ---
Version: R2011a
     Beitrag Verfasst am: 02.02.2012, 11:15     Titel:
  Antworten mit Zitat      
in alten versionen geht der anonyme funktion handle glaub ich nicht dann musst du die funktion auslagern. weiterhin geht fzero auch nur für eindimensionale sachen glaub ich. und nicht für vektoren. kann man dein problem nicht irgendwie in ne eigenwert problematik überführen?
Private Nachricht senden Benutzer-Profile anzeigen
 
grueßdichmeiner
Themenstarter

Forum-Anfänger
Forum-Anfänger

Beiträge: 19
Anmeldedatum: 16.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.02.2012, 11:23     Titel:
  Antworten mit Zitat      
Okay, also liegt es ander Version, dass es nicht hinhaut ja? ich hab die version R2010b.

Ich hab auch grade gelesen, dass fzero nur für skalare Probleme geeinget ist.
Du meinst, ich soll
Code:
fsolve
 

benutzen?

Puuuh eine Eigenwertproblematik...
Also an und für sich hab ich ja kein Gleichungssystem, sondern immer nur die selbe Funktion in der ich durch Integration h und v bestimmt habe.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Options and Permissions
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de goPCB.de


 Impressum  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2012 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.