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

Integration + Umformung

 

newtown
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 10.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2011, 23:02     Titel: Integration + Umformung
  Antworten mit Zitat      
hi,

ich muss vorweg sagen ich bin matlab neuling und hab mich heut intensiv mit integration beschäftigt, jetzt bin ich eh schon relativ weit gekommen, allerdings etwas check ich nicht.

die zu integrierende formel findet ihr im anhang.

Bekannt sind mir: Pa=0.8 , untere Integrationsgrenze R(tsoll)=0.98 , A=73.86 , B=1.8 und rho = 0.2

Als unbekannte bleibt mir damit nur n und nach der soll die integration aufgelöst werden.

Was habe ich bisher geschafft?

Bisher habe ich es folgend gemacht:
bisher habe ich es nur geschafft, dass ich n variiere und schau bis bei der integration 0.8 herauskommt, das ist aber etwas mühsam weil ich das gleiche mit unterschiedliche rhos durchführen muss. also ich hab nur die integration nach Pa aufgelöst und halt mit n gespielt bis Pa=0.8 herauskommt.

wie kann ich es jetzt angehen, dass ich quasi mein integrationsergebnis vorgeben und dann matlab nach n umformen lass.

bitte helft mir und wenns geht bitte genaue schritte angeben, weil ich wirklicher anfänger bin und matlab nur für diese integration brauche.

danke im voraus!

liebe grüße
christoph

dichte.jpg
 Beschreibung:

Download
 Dateiname:  dichte.jpg
 Dateigröße:  23.17 KB
 Heruntergeladen:  438 mal
Private Nachricht senden Benutzer-Profile anzeigen


Thomas84
Forum-Meister

Forum-Meister


Beiträge: 546
Anmeldedatum: 10.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.06.2011, 07:56     Titel:
  Antworten mit Zitat      
Es wird nicht viel anders gehen als du es gemacht hast. Allerdings kann man die Suche nach dem richtigen n mit Hilfe von fzero oder fsolve automatisieren. Wenn du deinen bisherigen code postest kann man sicherlich noch bessere Ratschläge geben.

viele Grüße
Thomas
Private Nachricht senden Benutzer-Profile anzeigen
 
newtown
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 10.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.06.2011, 08:21     Titel:
  Antworten mit Zitat      
hi,

danke für deine antwort, anbei mein code. allerdings gilt zu beachten, dass ich da keine variablen drin habe sondern direkt die fixen zahlenwerte reingeschrieben habe.

Code:
f=@(R) ((1-0.1).*(R.^67)+0.1.*((R.^(73.86+67-1).*(1-R).^(1.8-1))./(beta(73.86,1.8))))./(((1-0.1)./(67+1))+0.1.*(beta(73.86+67,1.8)./(beta(73.86,1.8))))

//da ist jetzt n=67, rho=0.1, A=73.86, B=1.8
//danach integrier ich das ganze über R mit den grenzen 0.98 bis 1

>> quad(f,0.98,1)

ans =

    0.7975
 


wie gesagt bin kompletter anfänger udn würde matlab nur für diese integration brauchen wegen meiner diplomarbeit. wenn mir also wer weiterhelfen könnte wäre ich sehr sehr dankbar!

liebe grüße
christoph
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: 11.06.2011, 10:49     Titel:
  Antworten mit Zitat      
Hallo,

gibt es für n irgendwelche Einschränkungen?
Ansonsten stimme ich Thomas zu. Das Integral dürfte zu komplex sein, um eine analytische Stammfunktion zu finden.

Daher bleibt nur, für bestimmte rho (jetzt unter der Annahme, dass es keine Einschränkungen für n gibt wie "n ganzzahlig) mit Hilfe von fsolve oder fzero das richtige n zu finden.

Schön fände ich persönlich dann einen Plot, in dem n über rho aufgetragen wird.

Für den Anfang als Tip: wenn du n und rho variieren möchtest, schau dir mal anonymous function handles an.

Bei konkreten Fragen kann man sicher noch weiterhelfen.

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

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 10.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.06.2011, 13:50     Titel:
  Antworten mit Zitat      
hi,

für n gibt es eigentlich keien einschärnkung, sollte n=62.45 herauskommen nimm ich n=63, da der stichprobenumfang nur ganzzahlig sein kann.

das mit dem n über rho klingt toll, sowas würd ich brauchen, wie mach ich sowas?

lg
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: 12.06.2011, 10:48     Titel:
  Antworten mit Zitat      
Hallo,

etwa so (einfach mal so hingeschrieben) :
Code:
rho = ... % ein Gitter mit rho-Werten
n = zeros(size(rho));
fRhon = @(R, rho, n) ... % Formel mit R, rho und n
for I = 1:length(rho)
n0 = ... % Startwert, evtl. in Abh. von rho oder vorheriger Endwert
[n(I),fval,exitflag] = fzero(@(n) quad(@(R) f(R, rho(I), n) ,0.98,1) - 0.8, n0);
if exitflag <= 0 % keine echte Nullstelle
n(I) = NaN;
end
end
plot(rho, n)

Sollten zuviele ungültige Punkte herauskommen, kannst du auch einfach gewisse n (z.B. von 1 bis 100) durchprobieren.

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

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 10.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.06.2011, 15:54     Titel:
  Antworten mit Zitat      
hi,

danke harald für deine bemühungen, leider funktioniert es bei mir noch immer nicht. bitte schau dir den code kurz an, ich habs versucht so ein zutippen aber da geht was nicht, fehler weiß ich auch nicht wo der liegt da ich den code nicht verstehe.

danke für deine bemühungen wenn du mir den richtig stellen könntest wäre mir sehr sehr geholfen.

Code:
>> A=73.87

A =

   73.8700

>> B=1.8

B =

    1.8000

>> rho = 0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1 % ein Gitter mit rho-Werten
n = zeros(size(rho));
fRhon = @(R, rho, n) ((1-rho).*R.^n+rho.*((R.^(A+n-1).*(1-R).^(B-1))./(beta(A,B))))./(((1-rho)./(n+1))+rho.*(beta(A+n,B)/beta(A,B))) % Formel mit R, rho und n
for I = 1:length(rho)
n0 = 0 % Startwert, evtl. in Abh. von rho oder vorheriger Endwert
[n(I),fval,exitflag] = fzero(@(n) quad(@(R) f(R, rho(I), n) ,0.98,1) - 0.8, n0);
if exitflag <= 0 % keine echte Nullstelle
n(I) = NaN;
end
end
plot(rho, n)


fehlermeldung ist dann wie folgt:
Code:
??? Error using ==> fzero at 317
FZERO cannot continue because user supplied function_handle ==> @(n)quad(@(R)f(R,rho(I),n),0.98,1)-0.8
failed with the error below.

Undefined function or variable 'I'.


sorry dass ich dir umstände mache, aber wie gesagt ich brauch nur diese blöde integration für meine diplomarbeit.

liebe grüße
christoph
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: 12.06.2011, 17:09     Titel:
  Antworten mit Zitat      
Hallo,

auf den ersten Blick sehe ich nur, dass es beim Aufruf von fzero fRhon statt f heißen müsste.
Die Fehlermeldung erstaunt mich zugegebenermaßen. Ich habe aber leider gerade kein MATLAB zur Hand, um das Problem nachvollziehen zu können.

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

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 10.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.06.2011, 18:42     Titel:
  Antworten mit Zitat      
hi,

danke jetzt hat er was getan, aber der graph bleibt leer, folgender fehler kommt

Code:
Warning: Maximum function count exceeded; singularity likely.
> In quad at 106
  In @(n)quad(@(R)fRhon(R,rho(I),n),0.98,1)-0.8
  In fzero at 520
Warning: Maximum function count exceeded; singularity likely.
> In quad at 106
  In @(n)quad(@(R)fRhon(R,rho(I),n),0.98,1)-0.8
  In fzero at 520
Warning: Maximum function count exceeded; singularity likely.
> In quad at 106
  In @(n)quad(@(R)fRhon(R,rho(I),n),0.98,1)-0.8
  In fzero at 520
Warning: Maximum function count exceeded; singularity likely.
> In quad at 106
  In @(n)quad(@(R)fRhon(R,rho(I),n),0.98,1)-0.8
  In fzero at 520
Warning: Maximum function count exceeded; singularity likely.
> In quad at 106
  In @(n)quad(@(R)fRhon(R,rho(I),n),0.98,1)-0.8
  In fzero at 520
Warning: Maximum function count exceeded; singularity likely.
> In quad at 106
  In @(n)quad(@(R)fRhon(R,rho(I),n),0.98,1)-0.8
  In fzero at 520
Warning: Maximum function count exceeded; singularity likely.
> In quad at 106
  In @(n)quad(@(R)fRhon(R,rho(I),n),0.98,1)-0.8
  In fzero at 520
Warning: Maximum function count exceeded; singularity likely.
> In quad at 106
  In @(n)quad(@(R)fRhon(R,rho(I),n),0.98,1)-0.8
  In fzero at 520
Warning: Maximum function count exceeded; singularity likely.
> In quad at 106
  In @(n)quad(@(R)fRhon(R,rho(I),n),0.98,1)-0.8
  In fzero at 520
Warning: Maximum function count exceeded; singularity likely.
> In quad at 106
  In @(n)quad(@(R)fRhon(R,rho(I),n),0.98,1)-0.8
  In fzero at 520
Warning: Maximum function count exceeded; singularity likely.
> In quad at 106
  In @(n)quad(@(R)fRhon(R,rho(I),n),0.98,1)-0.8
  In fzero at 520
Warning: Maximum function count exceeded; singularity likely.
> In quad at 106
  In @(n)quad(@(R)fRhon(R,rho(I),n),0.98,1)-0.8
  In fzero at 520
Warning: Maximum function count exceeded; singularity likely.
> In quad at 106
  In @(n)quad(@(R)fRhon(R,rho(I),n),0.98,1)-0.8
  In fzero at 520


hast du da noch eine idee?

lg
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: 13.06.2011, 22:29     Titel:
  Antworten mit Zitat      
Hallo,

diese Funktion scheint fzero nicht zu gefallen.
Wächst oder fällt die Funktion monoton in n? Dann brauchst du ja nur die Funktion für verschiedene n in einer Schleife auszuwerten und schauen, wann du den Schwellwert überschreitest.

Grüße,
Harald
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.