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

formel programmieren

 

andrej13
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 05.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.05.2011, 13:53     Titel: formel programmieren
  Antworten mit Zitat      
Hallo,
ich versuche die Formel irgendwie zu programmieren. mir fällt aber gar nicht wie ich es machen könnte Mad

0,5-summe von(i=x) bis (n) [ (i ueber n) * (1-x)hoch(n-i)*x^i=0

nach x lässt sich die formel nicht auflösen, also müsste man es mit fzero rechnen.

da ich für alle x zwischen 1 und 1000 rechnen will ist es eine ganze menge Schreibarbeit.
Daher die Frage: hat jemand eine Idee wie ich dieses problem lösen könnte.
Private Nachricht senden Benutzer-Profile anzeigen


Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 29.06.2011, 11:44     Titel:
  Antworten mit Zitat      
x=1:1000000 ?
_________________

Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
Private Nachricht senden Benutzer-Profile anzeigen
 
andrej13
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 05.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.06.2011, 13:19     Titel:
  Antworten mit Zitat      
super hilfe
Private Nachricht senden Benutzer-Profile anzeigen
 
Thomas84
Forum-Meister

Forum-Meister


Beiträge: 546
Anmeldedatum: 10.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.06.2011, 13:37     Titel:
  Antworten mit Zitat      
Was spricht den gegen eine Schleife?
Private Nachricht senden Benutzer-Profile anzeigen
 
Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 30.06.2011, 08:28     Titel:
  Antworten mit Zitat      
andrej13 hat Folgendes geschrieben:
super hilfe

immerhin war in meinem Post mehr verwertbarer Code als bei dir.
Du hast kein drei-Zeilen-Problem genannt sondern willst hier deine Hausaufgaben gelöst kriegen. Fang doch mal an.

mein "tipp" bezog sich übrigens auf
andrej13 hat Folgendes geschrieben:
da ich für alle x zwischen 1 und 1000 rechnen will ist es eine ganze menge Schreibarbeit.


also: leg mal was vor, dann kann dir geholfen werden, sonst wirds nur ein wildes Raten.
_________________

Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.06.2011, 08:39     Titel:
  Antworten mit Zitat      
Hallo,

ist n gegeben?
x scheint eine Wahrscheinlichkeit zu sein, dann wundert mich jedoch, dass die Summe bei i = x starten soll.
Helfen dürfte NCHOOSEK, bzw. Wenn du versuchen willst, es ohne Schleife hinzubekommen, FACTORIAL.

So oder so sehe ich da kein spezielles Problem - man muss sich halt mal hinsetzen und das programmieren.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
andrej13
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 05.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.06.2011, 10:18     Titel:
  Antworten mit Zitat      
Hallo,
Das problem war dass ich der Funktion fzero beim jedem durchlauf einen anderen String übergen muss und ich wusste nicht wie ich den String basteln muss.
So habe ich es gelöst

Code:

function stringerstellen(n,k,z)
text = [num2str(z),'-('];
for i=k:n
  text = [text, '+', num2str(nchoosek(n,i)),'*(1-x)^',num2str(n-1),'*x^',num2str(i)];
end
text=[text,')'];
 


und dann der Aufruf der Funktion z. B. für n=10
Code:

for i=1:n
  P(i)=fzero(stringerstellen(n,i,0.5),0.5);
end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.06.2011, 10:36     Titel:
  Antworten mit Zitat      
Hallo,

das ganze dürfte mit Function Handles deutlich leichter und übersichtlicher sein.
Schau dir doch mal die Dokumentation von fzero und die darin enthaltenen Beispiele an.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
andrej13
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 05.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.06.2011, 12:45     Titel:
  Antworten mit Zitat      
ok danke. bloß beinhaltet die Funktion eine Summe und einen binomialkoeffizient. Wie man diese dann abbildet raff ich nicht.
aber es funktioniert ja.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 30.06.2011, 13:00     Titel:
  Antworten mit Zitat      
Hallo,

ich könnte mir das so vorstellen:
Code:
function findzeros
n = 10;
P = zeros(10,1);
for I=1:n
  P(I)=fzero(@(x) zerofun(x,n,I,0.5),0.5);
end
disp(P)


function res = zerofun(x,n,k,z)
res = z;
for i=k:n
  res = res - nchoosek(n,i) *(1-x)^(n-i) *x^i;
end


Sieht doch schöner aus?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
andrej13
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 05.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.06.2011, 13:06     Titel:
  Antworten mit Zitat      
Idea aa cool. vielen dank.
Very Happy
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.