Denis

Mr. Denis Semenov

25 Reputation

6 Badges

12 years, 363 days
Saint Petersburg

MaplePrimes Activity


These are replies submitted by Denis

@acer 

 

I also can share *.mw file of this task if needed....

CONSTANTS

restart; interface(rtablesize = infinity); vtxnum := 4: brsnum := 3: CRDxy := Array(1 .. vtxnum+1, 1 .. 2): BRSxy := Array(1 .. brsnum, 1 .. 3): b := .2: h := .4; a := 0.4e-1; Nz := 0; R[b] := 14.5*10^3; sigma[b1] := .6*R[b]; epsilon[b0] := 0.2e-2; epsilon[b2] := 0.35e-2; epsilon[b1, red] := 0.15e-2; E[b, red] := R[b]/epsilon[b1, red]; R[s] := 355*10^3; E[s] := 2*10^8; epsilon[s0] := evalf(R[s]/E[s]); epsilon[s2] := 0.25e-1; CRDxy[2, 1] := -(1/2)*b; CRDxy[2, 2] := (1/2)*h; CRDxy[1, 1] := -(1/2)*b; CRDxy[1, 2] := -(1/2)*h; CRDxy[3, 1] := (1/2)*b; CRDxy[3, 2] := (1/2)*h; CRDxy[4, 1] := (1/2)*b; CRDxy[4, 2] := -(1/2)*h; CRDxy[5, 1] := -(1/2)*b; CRDxy[5, 2] := -(1/2)*h; BRSxy[1, 1] := -0.6e-1; BRSxy[2, 1] := 0; BRSxy[3, 1] := 0.6e-1; BRSxy[1, 2] := -.16; BRSxy[3, 2] := -.16; BRSxy[1, 3] := 0.16e-1; BRSxy[2, 3] := 0.16e-1; BRSxy[3, 3] := 0.16e-1;

PROCEDURE

subP3 := proc (beta) local z, t, i, j, v, StrssXY, Nint, StrnDsb, INTRSC, LstV, vmin, delta, BRSuv, LstBrsV, vmax, vBRSmax, C1, SOL, Mx, My; global Lp3, CRDuv, LstU, SLN, StrnDsbFnXY, StrssCctXY, StrssStl, NAp3, MtrxC1; BRSuv := Array(1 .. brsnum, 1 .. 2); MtrxC1 := Array(1 .. 9, 1 .. 6); assume(C1 < (1/2)*h, -(1/2)*h < C1); NAp3 := proc (x) options operator, arrow; tan(evalf((1/180)*beta*Pi))*x+C1 end proc; CRDuv := Array(1 .. vtxnum, 1 .. 2); for i to vtxnum do CRDuv[i, 1] := CRDxy[i, 1]*cos(evalf((1/180)*beta*Pi))+(CRDxy[i, 2]-C1)*sin(evalf((1/180)*beta*Pi)); CRDuv[i, 2] := (CRDxy[i, 2]-C1)*cos(evalf((1/180)*beta*Pi))-CRDxy[i, 1]*sin(evalf((1/180)*beta*Pi)) end do; for i to brsnum do BRSuv[i, 1] := BRSxy[i, 1]*cos(evalf((1/180)*beta*Pi))+(BRSxy[i, 2]-C1)*sin(evalf((1/180)*beta*Pi)); BRSuv[i, 2] := (BRSxy[i, 2]-C1)*cos(evalf((1/180)*beta*Pi))-BRSxy[i, 1]*sin(evalf((1/180)*beta*Pi)) end do; LstU := []; LstV := []; LstBrsV := []; for i to vtxnum do LstU := [op(LstU), CRDuv[i, 1]]; LstV := [op(LstV), CRDuv[i, 2]] end do; for i to brsnum do LstBrsV := [op(LstBrsV), BRSuv[i, 2]] end do; vmax := max(op(LstV)); if vmax = 0 then vmax := 0.1e-5 end if; vmin := min(op(LstV)); vBRSmax := min(op(LstBrsV)); if vBRSmax = 0 then vBRSmax := 0.1e-5 end if; Lp3 := []; StrnDsb := proc (x1, y1, x2, y2) local v; global StrnDsbFn; StrnDsbFn := proc (v) options operator, arrow; (y2-y1)*(v-x1)/(x2-x1)+y1 end proc end proc; StrnDsb(vmax, -epsilon[b2], 0, 0); StrnDsbFnXY := proc (x, y) options operator, arrow; subs(v = (y-C1)*cos(evalf((1/180)*beta*Pi))-x*sin(evalf((1/180)*beta*Pi)), StrnDsbFn(v)) end proc; StrssCctXY := proc (x, y) options operator, arrow; piecewise(StrnDsbFnXY(x, y) <= 0 and -epsilon[b1, red] <= StrnDsbFnXY(x, y), E[b, red]*StrnDsbFnXY(x, y), StrnDsbFnXY(x, y) < -epsilon[b1, red] and -epsilon[b2] <= StrnDsbFnXY(x, y), -R[b], 0 < StrnDsbFnXY(x, y), 0, StrnDsbFnXY(x, y) < -epsilon[b2], 0) end proc; StrssStl := proc (x, y) options operator, arrow; piecewise(0 <= StrnDsbFnXY(x, y) and StrnDsbFnXY(x, y) <= epsilon[s0], E[s]*StrnDsbFnXY(x, y), epsilon[s0] < StrnDsbFnXY(x, y) and StrnDsbFnXY(x, y) <= epsilon[s2], R[s], StrnDsbFnXY(x, y) < 0, 0, epsilon[s2] < StrnDsbFnXY(x, y), 0) end proc; SOL := fsolve(Nz+int(int(StrssCctXY(x, y), x = -(1/2)*b .. (1/2)*b), y = -(1/2)*h .. (1/2)*h)+add(StrssStl(BRSxy[n, 1], BRSxy[n, 2])*3.14*BRSxy[n, 3]^2/4, n = 1 .. brsnum) = 0, {C1 = -(1/2)*h .. (1/2)*h}); C1 := subs(SOL, C1); print(C1) end proc

OUTPUT

subP3(40)

StrssCctXY(x, y)

@acer 

 

I also can share *.mw file of this task if needed....

CONSTANTS

restart; interface(rtablesize = infinity); vtxnum := 4: brsnum := 3: CRDxy := Array(1 .. vtxnum+1, 1 .. 2): BRSxy := Array(1 .. brsnum, 1 .. 3): b := .2: h := .4; a := 0.4e-1; Nz := 0; R[b] := 14.5*10^3; sigma[b1] := .6*R[b]; epsilon[b0] := 0.2e-2; epsilon[b2] := 0.35e-2; epsilon[b1, red] := 0.15e-2; E[b, red] := R[b]/epsilon[b1, red]; R[s] := 355*10^3; E[s] := 2*10^8; epsilon[s0] := evalf(R[s]/E[s]); epsilon[s2] := 0.25e-1; CRDxy[2, 1] := -(1/2)*b; CRDxy[2, 2] := (1/2)*h; CRDxy[1, 1] := -(1/2)*b; CRDxy[1, 2] := -(1/2)*h; CRDxy[3, 1] := (1/2)*b; CRDxy[3, 2] := (1/2)*h; CRDxy[4, 1] := (1/2)*b; CRDxy[4, 2] := -(1/2)*h; CRDxy[5, 1] := -(1/2)*b; CRDxy[5, 2] := -(1/2)*h; BRSxy[1, 1] := -0.6e-1; BRSxy[2, 1] := 0; BRSxy[3, 1] := 0.6e-1; BRSxy[1, 2] := -.16; BRSxy[3, 2] := -.16; BRSxy[1, 3] := 0.16e-1; BRSxy[2, 3] := 0.16e-1; BRSxy[3, 3] := 0.16e-1;

PROCEDURE

subP3 := proc (beta) local z, t, i, j, v, StrssXY, Nint, StrnDsb, INTRSC, LstV, vmin, delta, BRSuv, LstBrsV, vmax, vBRSmax, C1, SOL, Mx, My; global Lp3, CRDuv, LstU, SLN, StrnDsbFnXY, StrssCctXY, StrssStl, NAp3, MtrxC1; BRSuv := Array(1 .. brsnum, 1 .. 2); MtrxC1 := Array(1 .. 9, 1 .. 6); assume(C1 < (1/2)*h, -(1/2)*h < C1); NAp3 := proc (x) options operator, arrow; tan(evalf((1/180)*beta*Pi))*x+C1 end proc; CRDuv := Array(1 .. vtxnum, 1 .. 2); for i to vtxnum do CRDuv[i, 1] := CRDxy[i, 1]*cos(evalf((1/180)*beta*Pi))+(CRDxy[i, 2]-C1)*sin(evalf((1/180)*beta*Pi)); CRDuv[i, 2] := (CRDxy[i, 2]-C1)*cos(evalf((1/180)*beta*Pi))-CRDxy[i, 1]*sin(evalf((1/180)*beta*Pi)) end do; for i to brsnum do BRSuv[i, 1] := BRSxy[i, 1]*cos(evalf((1/180)*beta*Pi))+(BRSxy[i, 2]-C1)*sin(evalf((1/180)*beta*Pi)); BRSuv[i, 2] := (BRSxy[i, 2]-C1)*cos(evalf((1/180)*beta*Pi))-BRSxy[i, 1]*sin(evalf((1/180)*beta*Pi)) end do; LstU := []; LstV := []; LstBrsV := []; for i to vtxnum do LstU := [op(LstU), CRDuv[i, 1]]; LstV := [op(LstV), CRDuv[i, 2]] end do; for i to brsnum do LstBrsV := [op(LstBrsV), BRSuv[i, 2]] end do; vmax := max(op(LstV)); if vmax = 0 then vmax := 0.1e-5 end if; vmin := min(op(LstV)); vBRSmax := min(op(LstBrsV)); if vBRSmax = 0 then vBRSmax := 0.1e-5 end if; Lp3 := []; StrnDsb := proc (x1, y1, x2, y2) local v; global StrnDsbFn; StrnDsbFn := proc (v) options operator, arrow; (y2-y1)*(v-x1)/(x2-x1)+y1 end proc end proc; StrnDsb(vmax, -epsilon[b2], 0, 0); StrnDsbFnXY := proc (x, y) options operator, arrow; subs(v = (y-C1)*cos(evalf((1/180)*beta*Pi))-x*sin(evalf((1/180)*beta*Pi)), StrnDsbFn(v)) end proc; StrssCctXY := proc (x, y) options operator, arrow; piecewise(StrnDsbFnXY(x, y) <= 0 and -epsilon[b1, red] <= StrnDsbFnXY(x, y), E[b, red]*StrnDsbFnXY(x, y), StrnDsbFnXY(x, y) < -epsilon[b1, red] and -epsilon[b2] <= StrnDsbFnXY(x, y), -R[b], 0 < StrnDsbFnXY(x, y), 0, StrnDsbFnXY(x, y) < -epsilon[b2], 0) end proc; StrssStl := proc (x, y) options operator, arrow; piecewise(0 <= StrnDsbFnXY(x, y) and StrnDsbFnXY(x, y) <= epsilon[s0], E[s]*StrnDsbFnXY(x, y), epsilon[s0] < StrnDsbFnXY(x, y) and StrnDsbFnXY(x, y) <= epsilon[s2], R[s], StrnDsbFnXY(x, y) < 0, 0, epsilon[s2] < StrnDsbFnXY(x, y), 0) end proc; SOL := fsolve(Nz+int(int(StrssCctXY(x, y), x = -(1/2)*b .. (1/2)*b), y = -(1/2)*h .. (1/2)*h)+add(StrssStl(BRSxy[n, 1], BRSxy[n, 2])*3.14*BRSxy[n, 3]^2/4, n = 1 .. brsnum) = 0, {C1 = -(1/2)*h .. (1/2)*h}); C1 := subs(SOL, C1); print(C1) end proc

OUTPUT

subP3(40)

StrssCctXY(x, y)

I tried to do that, there was no result...

 

I tried to do that, there was no result...

 

1 2 3 Page 3 of 3