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

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, 12: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
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 01.02.2012, 13: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, 09: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
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 02.02.2012, 09: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, 09: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
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 02.02.2012, 09: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, 10: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
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 02.02.2012, 10: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, 10: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:

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



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.