acer

32313 Reputation

29 Badges

19 years, 313 days
Ontario, Canada

Social Networks and Content at Maplesoft.com

MaplePrimes Activity


These are replies submitted by acer

@jalal Here is my suggestion for 2D math in the "headers" together with Carl's suggestion for additional substitution of complex values.

DocumentTools:-Tabulate(subsindets[flat](
                          Matrix([<["",F(x)[]]>,
                                  ((Vector@[u->u,F[]])~(C))[]]),
                          {undefined,And(complexcons,Not(realcons))},
                          ()->dne),
                        width=50,
                        fillcolor=((T,i,jj)->`if`(i=1 or jj=1,
                                                  [210,230,255],
                                                  [255,255,235]))):

You could put that into a reusable procedure, if you'd like, which could be hidden in a document's Startup code or a collapsed Code-Edit-Region. Such a procedure could simply take F and C as its arguments.

@jalal You could instead use a Matrix for the whole thing, with data and headers together, to get the header expressions to render in pretty-printed 2-D math.

DocumentTools:-Tabulate(subs(undefined=dne,
                             Matrix([<["",F(x)[]]>,
                                     ((Vector@[u->u,F[]])~(C))[]])),
                        width=50,
                        fillcolor=((T,i,jj)->`if`(i=1 or jj=1,
                                                  [210,230,255],
                                                  [255,255,235]))):

That summation index variable n1 is not entirely like the variable n. That name n1 represents a bound variable, since your sum call denotes that it would only take integer values between 1 and n-1.

There's not much significant difference between using the name n1 instead of the name i, or what have you. For example, these next two are conceptually similar:

    sum(f(i), i = 1 .. n-1)
    sum(f(n1), n1 = 1 .. n-1)

The end result of both of those would usually be the same; the results depend on (any value of) n in the upper end-point of the index, but the results don't depend on which choice of name is used for the summation index.

Maple knows a bit of that, which can be useful:

depends(sum(f(n1),n1=1..n-1), n);

         true

depends(sum(f(n1),n1=1..n-1), n1);

         false

depends(sum(f(i),i=1..n-1), i);

         false

expr := sum(f(i),i=1..n-1):

indets(expr, And(name,
                 satisfies(nm->depends(expr,nm))));

          {n}

@David Mazziotti Maple's GUI renders a certain kind of markup for its 2D Math pretty-printing, a.k.a. typesetting. There is a strong resemblance to MathML. The Maple specifics are not user-documented.

The "mo" stands for math-operator, and "mi" for math-identifier. (See here, for similar details.)

It can come in two forms. One construction consists of specially formed names, and the other of special function calls using exports of the Typesetting module. For example,

This first is all one long name.

`#mrow(mi("a",mathcolor="FF00BB"),msub(mi("x"),mi("i")))`;

`#mrow(mi("a",mathcolor="FF00BB"),msub(mi("x"),mi("i")))`

This next consists of nested function calls.

Typesetting:-mrow(mi("a",mathcolor="FF00BB"),
                  Typesetting:-msub(Typesetting:-mi("x"),
                                    Typesetting:-mi("i")));

a*x[i]

Download typemkex.mw

It can be very handy to be able to programmatically construct things which print in special ways (including the case where there is no usual Maple structure that would normally print in that manner).

Quite often one can infer how these forms work by creating some 2D Input, then using the right-click context-menu item,
   2-D Math -> Convert To -> Atomic Variable
and then executing, and then calling lprint on the result to show its structure.

See also the results of,
   exports(Typesetting);
which are mostly undocumented.

@MalakMMK I don't think that you coded the formula from the Hafiz paper correctly; at least some brackets are missing.

For example you had, as the first step,
   u - (2*F(u)/3*dF(u))
but the paper shows the denominator of that as all of 3*dF(u), hence,
   u - 2*F(u)/(3*dF(u))
Also, you had,
   v - F(u)*W/dF(u)+dF(v)
but the paper show the denominator of that as all of dF(u)+dF(v), hence,
   v - F(u)*W/(dF(u)+dF(v))

The paper defines "eta = f'(x)/f'(y) without the index n", which seems a little confusing. Below I used eta := dF(u)/dF(v) and get apparent success. Please edit and explain, if you think that's wrong.

[edit: Below I used a value of 20 for the maximal iteration cutoff, ie the third argument passed to H. So for a sensible comparison with the earlier Newton's and King's methods you might want to re-run those with that same value.]

Haf_Newton_ac1.mw

 

@Sradharam In the original example pde was assigned an equation, ie, something=0. That's why I used lhs(pde).

In your followup worksheet pde is no longer assigned as an equation. So the lhs call is no longer needed.

How_to_collects_the_coefficents_ac.mw

Please stop putting additional details and followup queries for this in new and separate Question threads.

Instead, you can add your additional details and followup queries for this here.

Please put your followup queries and additional details or attempts for this problem in a Reply/Comment in this same Question thread, instead of spawning a separate and new Question thread.

@Dkunb What is the significance of the curve separating the red and gray areas in the plot on the left? Is it supposed to denote a contour (level curve) of value of N(beta,alpha)?

If that is so then what is the common value that N attains along that contour? If that is not so then what does that curve represent?

ps. I'm trying to figure out what's going on with the alpha range, ie. any discrepency.

[edit: As alpha and beta get large (but especially as alpha gets large) the surface becomes relatively much flatter, which might confuse some commands or approaches for attaining a nice, smooth contour near N(beta,alpha)=0. It's possible that implicitplot might handle that better...]

@ijuptilk You have now stated that you expect,

  ((2*I)^2)/0.002;

to return,

   -2000.000000 * I

instead of,

   -2000.000000

Why do you expect that?

The original .mw worksheet attachment has been removed from this Question. Here is an earlier copy.

Case3_Ijuptilk_Contourplot_pmin_290822_orig.mw

It is very poor etiquette on the part of whoever removed the original.

@Dkunb You should explain -- properly, clearly, and adequately -- what the coloring and lines represent on those plots.

@Dkunb 

The internal plotting routines will attempt floating-point evaluation, using evalf (or evalhf) as appropriate.

That's how the plot can still be made, even if N is returning only inert Int calls from L.

You are free to call evalf(N(...)) to get any individual/scalar float result, if you prefer. Or you could add an evalf call in the L procedure itself. Of you could call evalf(L(...)) from within N. It's your choice.

@ijuptilk The code inside doCalc is not particulalrly good. It is not fast, for any single x-y input point. So the 5x5 grid is not very fast, and takes a few minutes on my machine.

And now you talk of an 81x81 grid. That is 260 times as many x-y points as a 5x5 grid. Naturally, using the same approach that would be much slower.

You had posted versions of some of it in several older postings, eg. here. I had looked at some of those and made a few suggestions which you appear since to have mostly not taken up. Eg. I suggested parallelization using the Grid package as an alternative to using plot3d to construct the 2-D data.

Parallelization is possible, but it won't give you an enormous speedup. If you raise the grid to 81x18 and make it 250 times slower then a 3-8 times speedup from parallelization won't help much. It's also a back-to-front approach to improving efficiency. You should focus first on the timing of a single call to doCalc, and only after that is good look at parallelization.

You also have a persistent habit of not explaining what exactly it is that you are trying to compute in adequate detail. Without adequate detail it is very difficult to make suggestions that pertain to anything but small aspects of the existing approach. I suspect that large portions of your approach could be replaced, but haven't received enough explanation to do so.

There is also some detail on the root-finding portion, here. And I also deleted my responses from at least one other thread (in which some details appeared), in frustration over the lack of complete detail, the way you kept changing and adding details, your omission in several prior Questions (until after people had put effort into your problem) of the important detail that you are using a very old Maple version, and your reluctance to utilize some suggested improvements.

I likely won't be able to spend more time on improving it.

@ijuptilk I ran the following in Maple 18.02.

I cast the data to a Matrix, before passing to listcontplot.

I used method=QR in the call to LinearSolve below. I don't know enough about what you're computing to pass judgement on whether that a valid approach. What do you think ought to happen in the case that your linear system is, say, underdetermined?

You still haven't bothered to upload an attachment with a worksheet that contains any corrections to the x-axis (range) that you mentioned in a Reply comment on your own Question.

restart:

kernelopts(version);

`Maple 18.02, X86 64 LINUX, Oct 20 2014, Build ID 991181`

Procedure

 

``

doCalc:= proc( xi , u)  #u is the \bar(H): normalize magnetic field magnitude,
                          # where H = bar(H)*H__a
                 # Import Packages
                 uses ArrayTools, Student:-Calculus1, LinearAlgebra,
                      ListTools, RootFinding, plots, ListTools:
                 local gamma__1:= .1093,
                       alpha__3:= -0.1104e-2,
                       k__1:= 6*10^(-12),
                       d:= 0.2e-3,
                       theta0:= 0.1e-3,
                       eta__1:= 0.240e-1, chi:= 1.219*10^(-6),
                       alpha:= 1-alpha__3^2/(gamma__1*eta__1),
                       theta_init:= theta0*sin(Pi*z/d),
                       H__a:= Pi*sqrt(k__1/chi)/d,
                       H := u*H__a,     
                       c:=alpha__3*xi*alpha/(eta__1*(4*k__1*q^2/d^2-alpha__3*xi/eta__1 - chi*H^2)),
                       w := chi*H^2*alpha/(4*k__1*q^2/d^2-alpha__3*xi/eta__1 - chi*H^2),
                       n:= 50,
                       g, f, b1, b2, qstar, OddAsymptotes, ModifiedOddAsym,
                       qstarTemporary, indexOfqstar2, qstar2, AreThereComplexRoots,
                       soln1, soln2, qcomplex1, qcomplex2, gg, qq, m, pp, j, i,
                       AllAsymptotes, p, Efun, b, aa, F, A, B, Ainv, r, theta_sol, v, Vfun, v_sol,minp,                        nstar,soln3, Imagroot1, Imagroot2, AreTherePurelyImaginaryRoots;

# Assign g for q and plot g, Set q as a complex and Compute the Special Asymptotes

  g:= q-(1-alpha)*tan(q)+  c*tan(q) + w*q:
  f:= subs(q = x+I*y, g):
  b1:= evalc(Re(f)) = 0:
  b2:= y-(1-alpha)*tanh(y) -(alpha__3*xi*alpha/(eta__1*(4*k__1*y^2/d^2+alpha__3*xi/eta__1)))*tanh(y) = 0;
  qstar:= (fsolve(1/c = 0, q = 0 .. infinity)):
  OddAsymptotes:= Vector[row]([seq(evalf(1/2*(2*j + 1)*Pi), j = 0 .. n)]);

# Compute Odd asymptote

  ModifiedOddAsym:= abs(`-`~(OddAsymptotes, qstar));
  qstarTemporary:= min(ModifiedOddAsym);
  indexOfqstar2:= SearchAll(qstarTemporary, ModifiedOddAsym);
  qstar2:= OddAsymptotes(indexOfqstar2);

# Compute complex roots

  AreThereComplexRoots:= type(true, 'truefalse');
  try
   soln1:= fsolve({b1, b2}, {x = min(qstar2, qstar) .. max(qstar2, qstar), y = 0 .. infinity});
   soln2:= fsolve({b1, b2}, {x = min(qstar2, qstar) .. max(qstar2, qstar), y = -infinity .. 0});
   qcomplex1:= subs(soln1, x+I*y);
   qcomplex2:= subs(soln2, x+I*y);
   catch:
   AreThereComplexRoots:= type(FAIL, 'truefalse');
  end try;

AreTherePurelyImaginaryRoots:= type(true, 'truefalse');
  try
# Compute the rest of the Roots
  soln3:= simplify~(fsolve({ b2}, { y = 0 .. infinity}),zero);  
  Imagroot1:=subs(soln3, I*y);
  Imagroot2:= -Imagroot1;
  catch:
   AreTherePurelyImaginaryRoots:= type(FAIL, 'truefalse');
  end try;

## odd and all asymptotes
  OddAsymptotes:= Vector[row]([seq(evalf((1/2)*(2*j+1)*Pi), j = 0 .. n)]);
  AllAsymptotes:= sort(Vector[row]([OddAsymptotes, qstar]));
       
 if (xi > 0) then
  if AreThereComplexRoots and not AreTherePurelyImaginaryRoots
  then gg:= [qcomplex1, qcomplex2,op(Roots(g, q = 0.1e-3 .. AllAsymptotes[1])),
              seq(op(Roots(g, q = AllAsymptotes[i] .. AllAsymptotes[i+1])), i = 1 .. n)];
  elif AreThereComplexRoots and AreTherePurelyImaginaryRoots
  then gg:= [qcomplex1, qcomplex2, Imagroot2, op(Roots(g, q = 0.1e-3 .. AllAsymptotes[1])), seq(op      (Roots(g, q = AllAsymptotes[i] .. AllAsymptotes[i+1])), i = 1 .. n)];
  elif not AreThereComplexRoots and AreTherePurelyImaginaryRoots
  then gg:= [Imagroot2, op(Roots(g, q = 0.1e-3 .. AllAsymptotes[1])), seq(op(Roots(g, q =               AllAsymptotes[i] .. AllAsymptotes[i+1])), i = 1 .. n)];
  elif not AreThereComplexRoots and not AreTherePurelyImaginaryRoots
  then gg:= [op(Roots(g, q = 0.1e-3 .. AllAsymptotes[1])), seq(op(Roots(g, q = AllAsymptotes[i] ..      AllAsymptotes[i+1])), i = 1 .. n)];
  end if:
else
if AreThereComplexRoots and not AreTherePurelyImaginaryRoots
  then gg:= [qcomplex1, qcomplex2,op(Roots(g, q = 0.1e-3 .. AllAsymptotes[1])),
              seq(op(Roots(g, q = AllAsymptotes[i] .. AllAsymptotes[i+1])), i = 1 .. n)];
  elif AreThereComplexRoots and AreTherePurelyImaginaryRoots
  then gg:= [qcomplex1, qcomplex2, Imagroot2, op(Roots(g, q = 0.1e-3 .. AllAsymptotes[1])), seq(op      (Roots(g, q = AllAsymptotes[i] .. AllAsymptotes[i+1])), i = 1 .. n)];
  elif not AreThereComplexRoots and AreTherePurelyImaginaryRoots
  then gg:= [op(Roots(g, q = 0.1e-3 .. AllAsymptotes[1])), seq(op(Roots(g, q =                          AllAsymptotes[i] .. AllAsymptotes[i+1])), i = 1 .. n)];
  elif not AreThereComplexRoots and not AreTherePurelyImaginaryRoots
  then gg:= [op(Roots(g, q = 0.1e-3 .. AllAsymptotes[1])), seq(op(Roots(g, q = AllAsymptotes[i] ..      AllAsymptotes[i+1])), i = 1 .. n)];
  end if:
end if:

# Remove the repeated roots if any & Redefine n

  qq:= MakeUnique(gg):
  m:= numelems(qq):

## Compute the `&tau;_n`time constants

   for i to m do
   p[i] := simplify(evalf(gamma__1*alpha/(4*k__1*qq[i]^2/d^2 - alpha__3*xi/eta__1- chi*H^2)),':-zero'):
   end do:

## Compute θ_n from initial conditions

  for i to m do
  Efun[i] := cos(qq[i]-2*qq[i]*z/d)-cos(qq[i]):
  end do:

## Compute integral coefficients for off-diagonal elements θ_n matrix

   printlevel := 2:
   for i to m do
       for j from i+1 to m do
           b[i, j] := int(Efun[i]*Efun[j], z = 0 .. d):
           b[j, i] := b[i, j]:
               aa[i, j] := b[i, j]:
               aa[j, i] := b[j, i]:
        end do :
   end do:

## Calculate integral coefficients for diagonal elements in theta_n matrix

  for i to m do
  aa[i, i] := int(Efun[i]^2, z = 0 .. d):
  end do:

## Calculate integrals for RHS vector

  for i to m do
  F[i] := int(theta_init*Efun[i], z = 0 .. d):
  end do:

## Create matrix A and RHS vector B

  A := Matrix([seq([seq(aa[i, j], i = 1 .. m)], j = 1 .. m)]):
  B := Vector([seq(F[i], i = 1 .. m)]):

## Calculate inverse of A and solve A*x=B

  #Ainv := 1/A:
  #r := MatrixVectorMultiply(Ainv, B):
  r := LinearSolve(A,B);

## Define Theta(z,t)
  theta_sol := add(r[i]*Efun[i]*exp(-t/p[i]), i = 1 .. m):

## Compute v_n for n times constant

  for i to m do
  v[i] := (-2*k__1*alpha__3*qq[i])*(1/(d^2*eta__1*alpha*gamma__1))+ alpha__3^2*xi/(2*(eta__1)^2*qq[i]*alpha*gamma__1)+xi/(2*eta__1*qq[i]) + alpha__3*chi*H^2/(2*eta__1*qq[i]*gamma__1*alpha):
  end do:

## Compute v(z,t) from initial conditions
  for i to m do
  Vfun[i] := d*sin(qq[i]-2*qq[i]*z/d)+(2*z-d)*sin(qq[i]):
  end do:

## Define v(z,t)
   v_sol := add(v[i]*r[i]*Vfun[i]*exp(-t/p[i]), i = 1 .. m):

## compute minimum value of tau
  minp:=min(seq( Re(p[i]), i = 1 .. m) );
  member(min(seq( Re(p[i]), i=1..m)),[seq( Re(p[i]), i=1..m)],'nstar'):

## Return all the plots
     return theta_init, theta_sol, v_sol, minp, eval(p), nstar, p[nstar], g, H, H__a,qq;
     end proc:

Run the calculation for supplied value of 'xi

 

NULL

``

NULL

NULL

NULL

NULL

NULL

NULL

NULL

ans:=[doCalc(0.1, 2)]:
evalf(ans[9]);
evalf(ans[10]);

69.69853431

34.84926715

 

Contour plot for pmin (minimum  of tau) for different xi and H values

 

NULL

NULL

with(plots):
d:= 0.2e-3:

testproc := proc(j, u, k) option remember;
   local calcvals;
   if not [j,u,k]::[numeric,numeric,posint] then
      return 'procname'(args);
   end if;
   calcvals:=doCalc(j,u);
   evalf(calcvals[k]);
end proc:

NN := 8;

8

(gridji,rngj,rngi):=[5,5],0..3,-2.0..-0.0;
PP[gridji,4]:=plot3d(max(-1e2,testproc(i,j,4)), j=rngj, i=rngi, grid=gridji):
PP[gridji,7]:= plot3d(Im(testproc(i,j,7)), j=rngj, i=rngi, grid=gridji):

[5, 5], 0 .. 3, -2.0 .. -0.

## Surface plot using 3d
PP[gridji,4]:

testproc(-1.0,1.5,4);

-119.9451877

## This is the pmin values
data[gridji,4]:=op([1,3],PP[gridji,4]);

data[[5, 5], 4] := Matrix(5, 5, {(1, 1) = -4.56109372700000, (1, 2) = -16.5517306200000, (1, 3) = -8.36945680000000, (1, 4) = -9.14002617600000, (1, 5) = 0.723410141700000e-2, (2, 1) = -4.40785476000000, (2, 2) = -14.6977719300000, (2, 3) = -7.86757454700000, (2, 4) = -100., (2, 5) = 0.723450034100000e-2, (3, 1) = -45.1423258900000, (3, 2) = -11.0010802700000, (3, 3) = -100., (3, 4) = -35.2069491100000, (3, 5) = -59.0582965200000, (4, 1) = -16.5967943100000, (4, 2) = -7.75166363700000, (4, 3) = -21.5341635200000, (4, 4) = -15.0367168400000, (4, 5) = -18.1717834500000, (5, 1) = -8.80334277800000, (5, 2) = -39.1054788600000, (5, 3) = -10.0221677400000, (5, 4) = -8.34415057400000, (5, 5) = -9.22785869200000})

## Convert Array to Matrix to allow the use listcontplot
ConMatrix := Matrix(data[gridji,4]);

ConMatrix := Matrix(5, 5, {(1, 1) = -4.56109372700000, (1, 2) = -16.5517306200000, (1, 3) = -8.36945680000000, (1, 4) = -9.14002617600000, (1, 5) = 0.723410141700000e-2, (2, 1) = -4.40785476000000, (2, 2) = -14.6977719300000, (2, 3) = -7.86757454700000, (2, 4) = -100., (2, 5) = 0.723450034100000e-2, (3, 1) = -45.1423258900000, (3, 2) = -11.0010802700000, (3, 3) = -100., (3, 4) = -35.2069491100000, (3, 5) = -59.0582965200000, (4, 1) = -16.5967943100000, (4, 2) = -7.75166363700000, (4, 3) = -21.5341635200000, (4, 4) = -15.0367168400000, (4, 5) = -18.1717834500000, (5, 1) = -8.80334277800000, (5, 2) = -39.1054788600000, (5, 3) = -10.0221677400000, (5, 4) = -8.34415057400000, (5, 5) = -9.22785869200000})

## Assign the min and max value of pmin to minv and maxv
(minv,maxv):=[min[defined],max[defined]](data[gridji,4])[];

-100., 0.723450034100000042e-2

## GRB color and the contours
(color1,color2):="Red","Yellow":
conts:=[minv, seq(minv+(i-1)*(maxv-minv)/(NN+2-1),i=2..NN+1), maxv]/2.0;

 

[-50.00000000, -44.44404253, -38.88808506, -33.33212758, -27.77617011, -22.22021264, -16.66425516, -11.10829770, -5.552340220, 0.3617250170e-2]

colorlist:=ColorTools:-Color~(((c1,c2,N)->[seq(c1+(i-1)*(c2-c1)/(N-1),
                                               i=1..N)])([ColorTools:-Color(color2)[]],
                                                         [ColorTools:-Color(color1)[]],
                                                         nops(conts))):

##

## Use the Conmatrix and the conts to plot contours and transform the axes
subsindets(plots:-listcontplot(ConMatrix, contours=conts,filledregions,thickness=0),
           specfunc(anything,THICKNESS),u->THICKNESS(0.2)):
LCP[gridji,4]:=plottools:-transform((x,y)->[lhs(rngj)+(rhs(rngj)-lhs(rngj))*(x-1)/(gridji[1]-1),
                                            lhs(rngi)+(rhs(rngi)-lhs(rngi))*(y-1)/(gridji[2]-1)])(%):
display(LCP[gridji,4],
        seq(plot(-2.0,1..1,legend=evalf[4](conts[i]),thickness=15,
                 color=colorlist[nops(conts)-i+1]),
            i=1..nops(conts)),
        size=[500,400],legendstyle=[location=right], axes=boxed, labels = ["u", "xi"], labelfont = ["TimesNewRoman", 14], axesfont = [14, 14]);

## This deals with the Imaginary part

## Surface plot using plot3d for Imginary part
PP[gridji,7]:

##

data[gridji,7]:=op([1,3],PP[gridji,7]):

## Convert Array to matrix
AMatrix := Matrix(data[gridji,7]);

AMatrix := Matrix(5, 5, {(1, 1) = 0., (1, 2) = 0., (1, 3) = 0., (1, 4) = 0., (1, 5) = 0., (2, 1) = 0., (2, 2) = 0., (2, 3) = 0., (2, 4) = 0., (2, 5) = 0., (3, 1) = 0., (3, 2) = 0., (3, 3) = 0., (3, 4) = 0., (3, 5) = 0., (4, 1) = 0., (4, 2) = 0., (4, 3) = 0., (4, 4) = 0., (4, 5) = 0., (5, 1) = 0., (5, 2) = 0., (5, 3) = 0., (5, 4) = 0., (5, 5) = 0.})

(minv,maxv):=[min,max](data[gridji,7])[];

0., 0.

(color1,color2):="Red","Yellow":
conts1:=[minv, seq(minv+(i-1)*(maxv-minv)/(NN+2-1),i=2..NN+1), maxv]/~1.5;

[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]

colorlist:=ColorTools:-Color~(((c1,c2,N)->[seq(c1+(i-1)*(c2-c1)/(N-1),
                                               i=1..N)])([ColorTools:-Color(color2)[]],
                                                         [ColorTools:-Color(color1)[]],
                                                         nops(conts1))):

subsindets(plots:-listcontplot(AMatrix,
                               contours=conts1-~1e-9,filledregions,thickness=0),
           specfunc(anything,THICKNESS),u->THICKNESS(0.2)):
LCP[gridji,7]:=plottools:-transform((x,y)->[lhs(rngj)+(rhs(rngj)-lhs(rngj))*(x-1)/(gridji[1]-1),
                                            lhs(rngi)+(rhs(rngi)-lhs(rngi))*(y-1)/(gridji[2]-1)])(%):
display(LCP[gridji,7],
        seq(plot(-2.0,1..1,legend=evalf[4](conts1[i]),thickness=15,
                 color=colorlist[nops(conts)-i+1]),
            i=1..nops(conts1)),
        size=[500,400],legendstyle=[location=right], axes=boxed, labels = ["u", "xi"], labelfont = ["TimesNewRoman", 14], axesfont = [14, 14]);

 

``

Download Case3_Ijuptilk_Contourplot_pmin_290822_acc.mw

First 98 99 100 101 102 103 104 Last Page 100 of 591