Skip to main content
added 843 characters in body
Source Link
 OPT[r1_, kk_, q1_, p1_, a1_, d_] := kk/4 ((a1/(p1 q1 kk) + 1 - d/r1 ) + Sqrt[((a1/(p1 q1 kk) + 1 - d/r1 )^2) + ((8 a1 d)/( p1 q1 kk r1)) ]) Sanctionvec[r1_, kk_, q1_, g_, p1_, a1_, l0_, x0_, T_, d_, n_, B_, Pi1_] := VectorPlot[{g (d (p1 - a1/(q1 x2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d, n])/(q1 x2)) + (r1 x2)/n (1 - x2/kk) (1/x2 (n - 1) (p1 - a1/(q1 x2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d, n])/(q1 x2)) - a1 /(q1 x2^2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d,n])/(q1 x2^2)) + Pi1 B H1vec[r1, kk, q1, p1, a1, d, n] - (p1 - a1/(q1 x2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d, n])/(q1 x2) ) (r1 (1 - (2 x2)/kk))) l, r1 x2 (1 - x2/kk) - q1 n l x2}, {l, 0, 1.1 Max[Evaluate[r1/(n q1)]]}, {x2, 0.001, kk}, VectorStyle -> Gray, VectorScale -> {Small, 0.1, Automatic}, VectorPoints -> 10] Hvec[r1_, kk_, q1_, p1_, a1_, dd_, n_]n_, x2_] := Piecewise[{{q1 x2, (r1 OPT[r1, kk, q1, p1, a1, d])/ n (1 - OPT[r1, kk, q1, p1, a1, d]/kk) < (r1 x2)/n (1 - x2/kk)}}, 0] H1vec[r1_, kk_, q1_, p1_, a1_, dd_, n_]n_, x2_] := Piecewise[{{r1/n (1 - x2/kk), (r1 OPT[r1, kk, q1, p1, a1, d])/n (1 - OPT[r1, kk, q1, p1, a1,d]/kk) < (r1 x2)/n (1 - x2/kk)}}, 0] 

Edit: Have now tried adding x2 as an argument to Hvec and H1vec but unfortunately still getting the same error. code is now:

Sanctionvec[r1_, kk_, q1_, g_, p1_, a1_, l0_, x0_, T_, d_, n_, B_, Pi1_] := VectorPlot[{g (d (p1 - a1/(q1 x2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d, n,x2])/(q1 x2)) + (r1 x2)/n (1 - x2/kk) (1/x2 (n - 1) (p1 - a1/(q1 x2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d, n,x2])/(q1 x2)) - a1 /(q1 x2^2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d,n,x2])/(q1 x2^2)) + Pi1 B H1vec[r1, kk, q1, p1, a1, d, n,x2] - (p1 - a1/(q1 x2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d, n,x2])/(q1 x2) ) (r1 (1 - (2 x2)/kk))) l, r1 x2 (1 - x2/kk) - q1 n l x2}, {l, 0, 1.1 Max[Evaluate[r1/(n q1)]]}, {x2, 0.001, kk}, VectorStyle -> Gray, VectorScale -> {Small, 0.1, Automatic}, VectorPoints -> 10] 
 OPT[r1_, kk_, q1_, p1_, a1_, d_] := kk/4 ((a1/(p1 q1 kk) + 1 - d/r1 ) + Sqrt[((a1/(p1 q1 kk) + 1 - d/r1 )^2) + ((8 a1 d)/( p1 q1 kk r1)) ]) Sanctionvec[r1_, kk_, q1_, g_, p1_, a1_, l0_, x0_, T_, d_, n_, B_, Pi1_] := VectorPlot[{g (d (p1 - a1/(q1 x2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d, n])/(q1 x2)) + (r1 x2)/n (1 - x2/kk) (1/x2 (n - 1) (p1 - a1/(q1 x2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d, n])/(q1 x2)) - a1 /(q1 x2^2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d,n])/(q1 x2^2)) + Pi1 B H1vec[r1, kk, q1, p1, a1, d, n] - (p1 - a1/(q1 x2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d, n])/(q1 x2) ) (r1 (1 - (2 x2)/kk))) l, r1 x2 (1 - x2/kk) - q1 n l x2}, {l, 0, 1.1 Max[Evaluate[r1/(n q1)]]}, {x2, 0.001, kk}, VectorStyle -> Gray, VectorScale -> {Small, 0.1, Automatic}, VectorPoints -> 10] Hvec[r1_, kk_, q1_, p1_, a1_, d, n_] := Piecewise[{{q1 x2, (r1 OPT[r1, kk, q1, p1, a1, d])/ n (1 - OPT[r1, kk, q1, p1, a1, d]/kk) < (r1 x2)/n (1 - x2/kk)}}, 0] H1vec[r1_, kk_, q1_, p1_, a1_, d, n_] := Piecewise[{{r1/n (1 - x2/kk), (r1 OPT[r1, kk, q1, p1, a1, d])/n (1 - OPT[r1, kk, q1, p1, a1,d]/kk) < (r1 x2)/n (1 - x2/kk)}}, 0] 
 OPT[r1_, kk_, q1_, p1_, a1_, d_] := kk/4 ((a1/(p1 q1 kk) + 1 - d/r1 ) + Sqrt[((a1/(p1 q1 kk) + 1 - d/r1 )^2) + ((8 a1 d)/( p1 q1 kk r1)) ]) Sanctionvec[r1_, kk_, q1_, g_, p1_, a1_, l0_, x0_, T_, d_, n_, B_, Pi1_] := VectorPlot[{g (d (p1 - a1/(q1 x2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d, n])/(q1 x2)) + (r1 x2)/n (1 - x2/kk) (1/x2 (n - 1) (p1 - a1/(q1 x2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d, n])/(q1 x2)) - a1 /(q1 x2^2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d,n])/(q1 x2^2)) + Pi1 B H1vec[r1, kk, q1, p1, a1, d, n] - (p1 - a1/(q1 x2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d, n])/(q1 x2) ) (r1 (1 - (2 x2)/kk))) l, r1 x2 (1 - x2/kk) - q1 n l x2}, {l, 0, 1.1 Max[Evaluate[r1/(n q1)]]}, {x2, 0.001, kk}, VectorStyle -> Gray, VectorScale -> {Small, 0.1, Automatic}, VectorPoints -> 10] Hvec[r1_, kk_, q1_, p1_, a1_, d_, n_, x2_] := Piecewise[{{q1 x2, (r1 OPT[r1, kk, q1, p1, a1, d])/ n (1 - OPT[r1, kk, q1, p1, a1, d]/kk) < (r1 x2)/n (1 - x2/kk)}}, 0] H1vec[r1_, kk_, q1_, p1_, a1_, d_, n_, x2_] := Piecewise[{{r1/n (1 - x2/kk), (r1 OPT[r1, kk, q1, p1, a1, d])/n (1 - OPT[r1, kk, q1, p1, a1,d]/kk) < (r1 x2)/n (1 - x2/kk)}}, 0] 

Edit: Have now tried adding x2 as an argument to Hvec and H1vec but unfortunately still getting the same error. code is now:

Sanctionvec[r1_, kk_, q1_, g_, p1_, a1_, l0_, x0_, T_, d_, n_, B_, Pi1_] := VectorPlot[{g (d (p1 - a1/(q1 x2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d, n,x2])/(q1 x2)) + (r1 x2)/n (1 - x2/kk) (1/x2 (n - 1) (p1 - a1/(q1 x2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d, n,x2])/(q1 x2)) - a1 /(q1 x2^2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d,n,x2])/(q1 x2^2)) + Pi1 B H1vec[r1, kk, q1, p1, a1, d, n,x2] - (p1 - a1/(q1 x2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d, n,x2])/(q1 x2) ) (r1 (1 - (2 x2)/kk))) l, r1 x2 (1 - x2/kk) - q1 n l x2}, {l, 0, 1.1 Max[Evaluate[r1/(n q1)]]}, {x2, 0.001, kk}, VectorStyle -> Gray, VectorScale -> {Small, 0.1, Automatic}, VectorPoints -> 10] 
Edit: Added the OPT function
Source Link
 OPT[r1_, kk_, q1_, p1_, a1_, d_] := kk/4 ((a1/(p1 q1 kk) + 1 - d/r1 ) + Sqrt[((a1/(p1 q1 kk) + 1 - d/r1 )^2) + ((8 a1 d)/( p1 q1 kk r1)) ]) Sanctionvec[r1_, kk_, q1_, g_, p1_, a1_, l0_, x0_, T_, d_, n_, B_, Pi1_] := VectorPlot[{g (d (p1 - a1/(q1 x2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d, n])/(q1 x2)) + (r1 x2)/n (1 - x2/kk) (1/x2 (n - 1) (p1 - a1/(q1 x2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d, n])/(q1 x2)) - a1 /(q1 x2^2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d,n])/(q1 x2^2)) + Pi1 B H1vec[r1, kk, q1, p1, a1, d, n] - (p1 - a1/(q1 x2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d, n])/(q1 x2) ) (r1 (1 - (2 x2)/kk))) l, r1 x2 (1 - x2/kk) - q1 n l x2}, {l, 0, 1.1 Max[Evaluate[r1/(n q1)]]}, {x2, 0.001, kk}, VectorStyle -> Gray, VectorScale -> {Small, 0.1, Automatic}, VectorPoints -> 10] Hvec[r1_, kk_, q1_, p1_, a1_, d, n_] := Piecewise[{{q1 x2, (r1 OPT[r1, kk, q1, p1, a1, d])/ n (1 - OPT[r1, kk, q1, p1, a1, d]/kk) < (r1 x2)/n (1 - x2/kk)}}, 0] H1vec[r1_, kk_, q1_, p1_, a1_, d, n_] := Piecewise[{{r1/n (1 - x2/kk), (r1 OPT[r1, kk, q1, p1, a1, d])/n (1 - OPT[r1, kk, q1, p1, a1,d]/kk) < (r1 x2)/n (1 - x2/kk)}}, 0] 

the OPT function is just constants so I'm leaving it out (also d is a delta, B beta and Pi1 pi - changed them to make it look a bit neater). If it helps at all, the code is for an adapted version of the modified Golden rule arising from the Gordon-Schaefer harvest function.

Sanctionvec[r1_, kk_, q1_, g_, p1_, a1_, l0_, x0_, T_, d_, n_, B_, Pi1_] := VectorPlot[{g (d (p1 - a1/(q1 x2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d, n])/(q1 x2)) + (r1 x2)/n (1 - x2/kk) (1/x2 (n - 1) (p1 - a1/(q1 x2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d, n])/(q1 x2)) - a1 /(q1 x2^2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d,n])/(q1 x2^2)) + Pi1 B H1vec[r1, kk, q1, p1, a1, d, n] - (p1 - a1/(q1 x2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d, n])/(q1 x2) ) (r1 (1 - (2 x2)/kk))) l, r1 x2 (1 - x2/kk) - q1 n l x2}, {l, 0, 1.1 Max[Evaluate[r1/(n q1)]]}, {x2, 0.001, kk}, VectorStyle -> Gray, VectorScale -> {Small, 0.1, Automatic}, VectorPoints -> 10] Hvec[r1_, kk_, q1_, p1_, a1_, d, n_] := Piecewise[{{q1 x2, (r1 OPT[r1, kk, q1, p1, a1, d])/ n (1 - OPT[r1, kk, q1, p1, a1, d]/kk) < (r1 x2)/n (1 - x2/kk)}}, 0] H1vec[r1_, kk_, q1_, p1_, a1_, d, n_] := Piecewise[{{r1/n (1 - x2/kk), (r1 OPT[r1, kk, q1, p1, a1, d])/n (1 - OPT[r1, kk, q1, p1, a1,d]/kk) < (r1 x2)/n (1 - x2/kk)}}, 0] 

the OPT function is just constants so I'm leaving it out (also d is a delta, B beta and Pi1 pi - changed them to make it look a bit neater). If it helps at all, the code is for an adapted version of the modified Golden rule arising from the Gordon-Schaefer harvest function.

 OPT[r1_, kk_, q1_, p1_, a1_, d_] := kk/4 ((a1/(p1 q1 kk) + 1 - d/r1 ) + Sqrt[((a1/(p1 q1 kk) + 1 - d/r1 )^2) + ((8 a1 d)/( p1 q1 kk r1)) ]) Sanctionvec[r1_, kk_, q1_, g_, p1_, a1_, l0_, x0_, T_, d_, n_, B_, Pi1_] := VectorPlot[{g (d (p1 - a1/(q1 x2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d, n])/(q1 x2)) + (r1 x2)/n (1 - x2/kk) (1/x2 (n - 1) (p1 - a1/(q1 x2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d, n])/(q1 x2)) - a1 /(q1 x2^2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d,n])/(q1 x2^2)) + Pi1 B H1vec[r1, kk, q1, p1, a1, d, n] - (p1 - a1/(q1 x2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d, n])/(q1 x2) ) (r1 (1 - (2 x2)/kk))) l, r1 x2 (1 - x2/kk) - q1 n l x2}, {l, 0, 1.1 Max[Evaluate[r1/(n q1)]]}, {x2, 0.001, kk}, VectorStyle -> Gray, VectorScale -> {Small, 0.1, Automatic}, VectorPoints -> 10] Hvec[r1_, kk_, q1_, p1_, a1_, d, n_] := Piecewise[{{q1 x2, (r1 OPT[r1, kk, q1, p1, a1, d])/ n (1 - OPT[r1, kk, q1, p1, a1, d]/kk) < (r1 x2)/n (1 - x2/kk)}}, 0] H1vec[r1_, kk_, q1_, p1_, a1_, d, n_] := Piecewise[{{r1/n (1 - x2/kk), (r1 OPT[r1, kk, q1, p1, a1, d])/n (1 - OPT[r1, kk, q1, p1, a1,d]/kk) < (r1 x2)/n (1 - x2/kk)}}, 0] 

(also d is a delta, B beta and Pi1 pi - changed them to make it look a bit neater). If it helps at all, the code is for an adapted version of the modified Golden rule arising from the Gordon-Schaefer harvest function.

Source Link

Piecewise function within a vectorplot

I'm trying to do a vector plot with some code that includes piecewise functions and I keep getting the following error: Part::partw: Part 1 of {} does not exist. Here is the code:

Sanctionvec[r1_, kk_, q1_, g_, p1_, a1_, l0_, x0_, T_, d_, n_, B_, Pi1_] := VectorPlot[{g (d (p1 - a1/(q1 x2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d, n])/(q1 x2)) + (r1 x2)/n (1 - x2/kk) (1/x2 (n - 1) (p1 - a1/(q1 x2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d, n])/(q1 x2)) - a1 /(q1 x2^2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d,n])/(q1 x2^2)) + Pi1 B H1vec[r1, kk, q1, p1, a1, d, n] - (p1 - a1/(q1 x2) - (Pi1 B Hvec[r1, kk, q1, p1, a1, d, n])/(q1 x2) ) (r1 (1 - (2 x2)/kk))) l, r1 x2 (1 - x2/kk) - q1 n l x2}, {l, 0, 1.1 Max[Evaluate[r1/(n q1)]]}, {x2, 0.001, kk}, VectorStyle -> Gray, VectorScale -> {Small, 0.1, Automatic}, VectorPoints -> 10] Hvec[r1_, kk_, q1_, p1_, a1_, d, n_] := Piecewise[{{q1 x2, (r1 OPT[r1, kk, q1, p1, a1, d])/ n (1 - OPT[r1, kk, q1, p1, a1, d]/kk) < (r1 x2)/n (1 - x2/kk)}}, 0] H1vec[r1_, kk_, q1_, p1_, a1_, d, n_] := Piecewise[{{r1/n (1 - x2/kk), (r1 OPT[r1, kk, q1, p1, a1, d])/n (1 - OPT[r1, kk, q1, p1, a1,d]/kk) < (r1 x2)/n (1 - x2/kk)}}, 0] 

the OPT function is just constants so I'm leaving it out (also d is a delta, B beta and Pi1 pi - changed them to make it look a bit neater). If it helps at all, the code is for an adapted version of the modified Golden rule arising from the Gordon-Schaefer harvest function.

Thank you!