Question: Error in For Loop after Adding Constraint

I'm getting an error while executing the for loop after adding a constraint. Could you please help me identify and fix the syntax issue?

restart

C1 := (Cr*Pr*d*rho0-Cr*d*delta*rho0+Ce*d*delta+Cr*d*rho0-c*d*delta+d*delta*w-delta*g*i2-Ce*d+2*Pr*rho0+a*delta+c*d-d*w-2*delta*rho0+g*i2-a+2*rho0)/(rho0*(Cr*d+2)) <= Pn; C11 := Pn <= (Cr*Pr*d*upsilon-Cr*d*delta*upsilon+Ce*d*delta+Cr*d*upsilon-c*d*delta+d*delta*w-delta*g*i2-Ce*d+2*Pr*upsilon+a*delta+c*d-d*w-2*delta*upsilon+g*i2-a+2*upsilon)/(upsilon*(Cr*d+2))

(Cr*Pr*d*rho0-Cr*d*delta*rho0+Ce*d*delta+Cr*d*rho0-c*d*delta+d*delta*w-delta*g*i2-Ce*d+2*Pr*rho0+a*delta+c*d-d*w-2*delta*rho0+g*i2-a+2*rho0)/(rho0*(Cr*d+2)) <= Pn

 

Pn <= (Cr*Pr*d*upsilon-Cr*d*delta*upsilon+Ce*d*delta+Cr*d*upsilon-c*d*delta+d*delta*w-delta*g*i2-Ce*d+2*Pr*upsilon+a*delta+c*d-d*w-2*delta*upsilon+g*i2-a+2*upsilon)/(upsilon*(Cr*d+2))

(1)

`&Pi;m` := (Pn-Cn)*(1-(Pn-Pr)/(1-delta))+(Pr-w-Crm)*alpha*((((-a+0.4e-1*g)*Cr-c-(0.6e-1*alpha*d*rho0^2+2*d*delta*rho0-2*Pr*d*rho0+2*alpha*c*rho0^2-0.8e-1*alpha*g*rho0^2-2*a*d*delta+2*c*d^2*delta+2*Cn*d*rho0+0.3e-1*Cr*d^2*rho0^2-Cr*d^2*rho0+0.8e-1*d*delta*g+0.6e-1*d^2+0.3e-1*Cr*alpha*d^2*rho0^2+Cn*Cr*d^2*rho0-Cr*Pr*d^2*rho0+Cr*d^2*delta*rho0+2*Crm*alpha*d*rho0^2-2*Pr*alpha*d*rho0^2-2*alpha*c*d*rho0^2+Cr*Crm*alpha*d^2*rho0^2-Cr*Pr*alpha*d^2*rho0^2-Cr*alpha*c*d^2*rho0^2+Cr*alpha*c*d*rho0^2-0.4e-1*Cr*alpha*d*g*rho0^2-0.6e-1*d^2*delta+0.6e-1*d*rho0^2-0.8e-1*d*g-2*d*rho0+2*a*d-2*c*d^2)/(2*d*(Cr*alpha*d*rho0^2+2*alpha*rho0^2-d*delta+d))+0.3e-1)*d+0.4e-1*g-a)/(Cr*d+2)-0.4e-1*g+a)-(0.3e-1*(((-a+0.4e-1*g)*Cr-c-(0.6e-1*alpha*d*rho0^2+2*d*delta*rho0-2*Pr*d*rho0+2*alpha*c*rho0^2-0.8e-1*alpha*g*rho0^2-2*a*d*delta+2*c*d^2*delta+2*Cn*d*rho0+0.3e-1*Cr*d^2*rho0^2-Cr*d^2*rho0+0.8e-1*d*delta*g+0.6e-1*d^2+0.3e-1*Cr*alpha*d^2*rho0^2+Cn*Cr*d^2*rho0-Cr*Pr*d^2*rho0+Cr*d^2*delta*rho0+2*Crm*alpha*d*rho0^2-2*Pr*alpha*d*rho0^2-2*alpha*c*d*rho0^2+Cr*Crm*alpha*d^2*rho0^2-Cr*Pr*alpha*d^2*rho0^2-Cr*alpha*c*d^2*rho0^2+Cr*alpha*c*d*rho0^2-0.4e-1*Cr*alpha*d*g*rho0^2-0.6e-1*d^2*delta+0.6e-1*d*rho0^2-0.8e-1*d*g-2*d*rho0+2*a*d-2*c*d^2)/(2*d*(Cr*alpha*d*rho0^2+2*alpha*rho0^2-d*delta+d))+0.3e-1)*d+0.4e-1*g-a))/(Cr*d+2)+0.12e-2*g-0.3e-1*a

(Pn-Cn)*(1-(Pn-Pr)/(1-delta))+(Pr-w-Crm)*alpha*((((-a+0.4e-1*g)*Cr-c-(1/2)*(-0.8e-1*alpha*g*rho0^2+2*alpha*c*rho0^2+0.8e-1*d*delta*g+2*c*d^2*delta+0.6e-1*alpha*d*rho0^2-2*a*d*delta-Cr*d^2*rho0+0.3e-1*Cr*d^2*rho0^2+2*d*delta*rho0+2*Cn*d*rho0-2*Pr*d*rho0+2*a*d-2*c*d^2-0.6e-1*d^2*delta+0.6e-1*d*rho0^2-0.8e-1*d*g-2*d*rho0+0.6e-1*d^2+0.3e-1*Cr*alpha*d^2*rho0^2+Cn*Cr*d^2*rho0-Cr*Pr*d^2*rho0+Cr*d^2*delta*rho0+2*Crm*alpha*d*rho0^2-2*Pr*alpha*d*rho0^2-2*alpha*c*d*rho0^2+Cr*Crm*alpha*d^2*rho0^2-Cr*Pr*alpha*d^2*rho0^2-Cr*alpha*c*d^2*rho0^2+Cr*alpha*c*d*rho0^2-0.4e-1*Cr*alpha*d*g*rho0^2)/(d*(Cr*alpha*d*rho0^2+2*alpha*rho0^2-d*delta+d))+0.3e-1)*d+0.4e-1*g-a)/(Cr*d+2)-0.4e-1*g+a)-0.3e-1*(((-a+0.4e-1*g)*Cr-c-(1/2)*(-0.8e-1*alpha*g*rho0^2+2*alpha*c*rho0^2+0.8e-1*d*delta*g+2*c*d^2*delta+0.6e-1*alpha*d*rho0^2-2*a*d*delta-Cr*d^2*rho0+0.3e-1*Cr*d^2*rho0^2+2*d*delta*rho0+2*Cn*d*rho0-2*Pr*d*rho0+2*a*d-2*c*d^2-0.6e-1*d^2*delta+0.6e-1*d*rho0^2-0.8e-1*d*g-2*d*rho0+0.6e-1*d^2+0.3e-1*Cr*alpha*d^2*rho0^2+Cn*Cr*d^2*rho0-Cr*Pr*d^2*rho0+Cr*d^2*delta*rho0+2*Crm*alpha*d*rho0^2-2*Pr*alpha*d*rho0^2-2*alpha*c*d*rho0^2+Cr*Crm*alpha*d^2*rho0^2-Cr*Pr*alpha*d^2*rho0^2-Cr*alpha*c*d^2*rho0^2+Cr*alpha*c*d*rho0^2-0.4e-1*Cr*alpha*d*g*rho0^2)/(d*(Cr*alpha*d*rho0^2+2*alpha*rho0^2-d*delta+d))+0.3e-1)*d+0.4e-1*g-a)/(Cr*d+2)+0.12e-2*g-0.3e-1*a

(2)

DATA := [delta = .7, a = .2, d = .9, g = .3, c = 0.2e-1, sigma = .5, Cn = .35, Crm = .1, Cr = 0.1e-1, rho0 = .4, Pr = .6, alpha = .9, s = .21, upsilon = .95]

TRC := proc (Pn, w) options operator, arrow; eval(`&Pi;m`, DATA) end proc; C2 := subs(DATA, C1); C22 := subs(DATA, C11)

-.3359880537*Ce+.1119960179*i2-.3359880537*w+.8320557491 <= Pn

 

Pn <= -.1414686542*Ce+0.4715621807e-1*i2-.1414686542*w+.8713918944

(3)

C3 := isolate(C2, w); C33 := isolate(C22, w)

-.3359880537*w <= Pn+.3359880537*Ce-.1119960179*i2-.8320557491

 

w <= 6.159611112-7.068703704*Pn-.9999999999*Ce+.3333333333*i2

(4)

t := {0.3e-1, 0.5e-1, 0.7e-1, 0.9e-1}; ts := {0.4e-1, 0.8e-1, .12}

M := Matrix(nops(t)*nops(ts), 3); rr := 0; for Ce in t do for i2 in ts do C4 := eval(C3, [Ce = t, i2 = ts]); C44 := eval(C33, [Ce = t, i2 = ts]); s := Optimization:-Maximize(TRC(Pn, w), `union`(C4, C44), Pn = 0 .. 1, w = 0 .. 1, assume = nonnegative); stemp := s[1]; Pntemp := s[2][1]; wtemp := s[2][2]; rr := rr+1; M[rr, 1 .. 3] := `<|>`(Ce, i2, stemp); print(Ce, i2, stemp, Pntemp, wtemp) end do end do

Error, invalid input: `union` received -.3359880537*w <= Pn-.8264559482, which is not valid for its 1st argument

 

R := Array(ArrayTools:-Reshape(M,[3,4,3]),datatype=float[8]):

func := Interpolation:-SplineInterpolation([[0.04, 0.08, 0.12],[0.03, 0.05, 0.07, 0.09]],R[..,..,3]):

conts := [seq(min(R[..,..,3])..max(R[..,..,3]),(max(R[..,..,3])-min(R[..,..,3]))/8)];

[HFloat(0.0)]

(5)

``

 

ContoursWithLabels:= proc(

ContoursWithLabels(func(x, y), x = 0.3e-1 .. .15, y = 0.2e-1 .. .1, contours = conts, decplaces = 4, Coloring = [colorstyle = HUE, colorscheme = ["Blue", "Gold"], style = surface], TextOptions = [font = [HELVETICA, BOLD, 9], color = black], GraphicOptions = [thickness = 0], ImplicitplotOptions = [gridrefine = 3], size = [700, 600], labels = [':-C__e', ':-i__2'])

Download Q_Constraint_error.mw

Please Wait...