Prozedur mit if < Maple < Mathe-Software < Mathe < Vorhilfe
|
Hallo liebe Leutz,
ich habe eine Prozedur die einen If teil enthält. Leider stoppt diese genau dann wenn der der If Teil wahr ist.
Ich würde gerne detailierte das Problem beschreiben. Ich denke dass ich am besten den Code mal poste
> restart:
Preisparameter
> price:=12:cost:=2:Kmin:=145:Kmax:=160:Kstep:=1: Z:=200:w:=6:
Nachfrage Parameter
> Demand_low:=0:Demand_high:=100:
> Ddens:=1/(Demand_high-Demand_low):
> Ddistr:=D->(D-Demand_low)/(Demand_high-Demand_low):
Kapazitätsverteilung
> Kdens:=1/K:
> Kdistr:=x->x/K:
Listen Deklarierung
> [mm] DataArray_q:=[]:DataArrayCap:=[]:
[/mm]
Retailer Optimierungsproblem:
Prozeduren
> Quantity:=proc(K)
> if K>150
> then
> [mm] evalf(min(solve(int((price-w-price*Ddistr(k/2))*k*(1/(2*q)-q/(2*q)^2)*Kdens,k=0..(2*q))+(1-Kdistr(2*q))*(price-w-price*Ddistr(q))=0,q)));
[/mm]
> else
> Z;
> end if:
> end proc:
For-Schleife:
> for K from Kmin by Kstep to Kmax
> do
> DataArrayCap:=[op(DataArrayCap),K]:
> q:=Quantity(K):
> [mm] DataArray_q:=[op(DataArray_q),q]:
[/mm]
>
> end do:
Error, (in solve) a constant is invalid as a variable, 200
Das Problem ist, dass er bei den Term der Prozedur nicht ausrechnet. Ich kann mir aber nicht erklären warum. Der Fehler müßte doch in dem solve Term liegen. Aber warum die Fehler Anzeige mit den 200. Als 200 ist eigentlich nur Z definiert, aber dieser müßte doch ausgeschlossen sein.
Ich kanns mir nicht erklären, wäre über hilfe sehr dankbar....
Viele Weihnachtsgrüße,
Danny
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 20:08 Mo 22.12.2008 | Autor: | rainerS |
Hallo!
Du weist q in der Schleife einen Wert zu, willst aber in der Prozedur Quantity q wieder als unabhängige Variable benutzen. Nimm mal in der Schleife einen anderen Namen als q!
Viele Grüße
Rainer
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 20:55 Mo 22.12.2008 | Autor: | Danny1983 |
Danke Rainer,
habs gerade auch rausgefunden...
Manchmal sieht man vor lauter Bäumen den Wald nicht mehr,...
Hat geklappt dann...
Gruss und frohes Fest...
Danny
|
|
|
|