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

Integralrechnung gibt immer wieder Fehler aus

 

Sjmshell

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.05.2019, 17:13     Titel: Integralrechnung gibt immer wieder Fehler aus
  Antworten mit Zitat      
Hallo zusammen Smile

ich muss für meine Seminararbeit eine Hayward Fredericks Approximation in Matlab implementieren.
Hierbei spuckt mir Matlab immer wieder einen Fehler für die Berechnung des Integrals aus, sodass kein Ergebnis gefunden werden kann.

Mein Code sieht wie Folgt aus:
function BL = get_BL(s,n);
global a1
global a2
global j
global s
global g
global i
global B1
global B2
global Pe
global k
global ME
global x

s = [6 4 6] %Aufteilung der Mitarbeiter auf die Gruppen

lambda = [1.5 2]; %Angaben der prognostizierten Arbeitsauslastung
mu = [0.18 0.6 ; 0.16 0.5]; %Angaben der unterscheidlichen Bearbeitungsraten in Abhängigkeit von Skill und Gruppe
i=1; %Betrachtung der ersten Mitarbeitergruppe
j=1; %Betrachtung für den ersten Skill
E=2; %Anzahl Skills


if s(3)> 0 %Falls die Mitarbeiteranzahl der Generalistengruppe größer als 0 ist führe folgendes aus:

while j<=E %Solange j kleiner ist als die Anzahl der Skills E führe folgendes durch:
a(j) = lambda(j)/mu(1,j); %Berechne den mittleren Bestand im System auf der ersten Ebene
syms k;
m(j) = a(j)*(a(j)^s(i))/factorial(s(i))/symsum ((a(j)^k)/factorial(k), k, 0, s(i)); %Berechne den mittleren Überflussverkehr des jeweiligen Gruppe
Z(j) = 1 - m(j) + (a(j)/(s(i)+1 + m(j) - a(j))); %Berechne die Peakedness Z für die jeweilige Gruppe
v(j) = m(j) * Z(j); %Berechne die Varianz des Überflussverkehrs für die jeweilige Gruppe
j = j+1; %Erhöhe j um 1, um den nächsten Skill zu betrachten
i=i*1; %Erhöhe i um 1, um die Gruppe zu betrachten, die sich mit Skill j+1 beschäftigt
end %Beendung der while-Schleife


ME = sum (m); %Berechne die Summe des mittleren Überflussverkehr über alle Gruppen
V = sum(v); %Berechne die Summe der Varainzen über alle Gruppen
Z = V/ME; %Berechne die Peakedness Z für die Generalistengruppe

%Die Generalistengruppe wird nun in Z Subgruppen unterteilt

N_h= s(3)/Z %Berechne die Anzahl der Server für jede Subgruppe
a_h= ME/Z %Berechne den mittleren Verkehr für jede Subgruppe
syms x;
f = @(x) ((x^N_h) *exp(-x)) %Integralrechnung vorbereitung (Funktion des Integrals angeben)
E_B= a_h^(N_h) * exp(-(a_h)) /(integral(f,4,Inf)) %Berechne die Erlang B-Formel für nicht ganzzahlige Zahlen mit den vorher berechneten Angaben

BL = 1-E_B; %Berechnung der Blockierwahrscheinlichkeit durch die Gegenwahrscheinlichkeit
%der in Erang B berechneten Wahrscheinlchkeit

else %Falls die Bedingung der if-Schleife nicht erfüllt (s(3)=0) ist führe folgendes durch:
i=1; %Betrachtung der ersten Mitarbeitergruppe
j=1; %Betrachtung für den ersten Skill
syms k;
G1_B = a1*(a1(j)^s(i))/factorial(s(i))/symsum ((a1(j)^k)/factorial(k), k, 0, s(i)); %Berechnung der Erlang B-Formel für den ersten Skill

i=2; %Betrachtung der zweiten Mitarbeitergruppe
j=2; %Betrachtung für den zweiten Skill
syms k;
G2_B = a1*(a1(j)^s(i))/factorial(s(i))/symsum ((a1(j)^k)/factorial(k), k, 0, s(i)); %Berechnung der Erlang B-Formel für den zweiten Skill

BB= 1 - (G1_B + G2_B) %Berechne die Blockierwahrscheinlichkeit des Systems

end %Beendung der if-Schleife

HaywardFredericks.m
 Beschreibung:

Download
 Dateiname:  HaywardFredericks.m
 Dateigröße:  6.53 KB
 Heruntergeladen:  205 mal


Sjmshell

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.05.2019, 17:56     Titel:
  Antworten mit Zitat      
Vielen Dank schonmal für Ihre Hilfe Smile

Sjmshell
 
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 - 2024 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.