Robert Israel

6577 Reputation

21 Badges

18 years, 207 days
University of British Columbia
Associate Professor Emeritus
North York, Ontario, Canada

MaplePrimes Activity


These are answers submitted by Robert Israel

I don't know if pdsolve can do it, but here's how I might.

It appears likely that the solution should be radially symmetric.  So:

> pde:= diff(u(x,y),x)^2 + diff(u(x,y),y)^2=u(x,y);
   eval(pde,u(x,y) = U(x^2 + y^2));
   simplify(eval(%, x^2 = t - y^2));
   dsolve({%, U(1) = 1});

U(t) = 1/4*t-3/2*t^(1/2)+9/4, U(t) = 1/4*t+1/2*t^(1/2)+1/4, U(t) = 1/4*(t-3*(t^2)^(1/4))^2/t, U(t) = 1/4*(t+(t^2)^(1/4))^2/t

The third and fourth solutions turn out to be the same as the first and second,
assuming t > 0

> seq(u(x,y) = eval(rhs(s), t = x^2 + y^2), s =[%][1..2]);
u(x,y) = 1/4*x^2+1/4*y^2-3/2*(x^2+y^2)^(1/2)+9/4, u(x,y) = 1/4*x^2+1/4*y^2+1/2*(x^2+y^2)^(1/2)+1/4

> eval(r(tau), OrbitSolution(1));

Or if you'll want a procedure that returns r(tau) for any value of tau,

> ListProcs := dsolve(eqs, numeric, {r(tau), phi(tau), t(tau)},output=listprocedure);
   R:= eval(r(tau), ListProcs);

and then

> R(1);

        2.94403755017239

First of all, your function h(m) = -235*m + 94*ln((1+m)/(1-m)) doesn't actually have an inverse function, because it is not a one-to-one function.  It has partial inverses, corresponding to intervals on which h(m) is one-to-one.  A completely separate issue is that these partial inverses can't be expressed in closed form.

The plot produced by InversePlot is ugly because it's trying to plot h(m) and its inverse on the same axes, and the natural scales are quite different.  To plot just the inverse, you could do something like this:

> plot([h(m),m, m = -1/sqrt(5) .. 1/sqrt(5)], labels = [y, 'h^``(-1)'(y)]);

You mean this?

restart; with(plots):
P1:= plot([[-.1,-.1],[-.2,0],[-.1,.1],[-.8,.8],[.2,1.8],[1,1],[-.6,-.6],[.4,-1.6],[1,-1],
 [-.1,.1]],colour=black):
 P2:= plot([[.2, .8], [.8, .2],[0, -.6]],colour=black, linestyle=dash):
 P3:= plot([[3.63,.065],[3.695,-.065],[3.565,-.13],[3.7,-.4],[2.5,-1],[2.3,-.6],
[4.5,0.5],[4,1.5],[3,1],[3.565,-.13]],colour=black):
 P4:= plot([[0,-.6],[3.5,0]],colour=black,thickness=2):
 P5:= plot([[.2,.8],[3.55,.65],[.8,.2]],colour=black,thickness=2):
 P6:= arrow([0,-.6],[1.75,.3],shape=arrow,thickness=2),
      arrow([.8,.2],[(3.55-.8)/2,(.65-.2)/2],shape=arrow,thickness=2),
      arrow([.2,.8],[(3.55-.2)/2,(.65-.8)/2],shape=arrow,thickness=2):
 TP:= textplot([[-.65,1.4,`#mrow(mo("dim"),mo("⁢"),mi("r"))`],
       [.1, 1.16, "row"],[.12,1.0,"space"],[.1,.75,x[r]],
      [1,.05,x=x[r]+x[n]], [0,-.7,x[n]], [3.7,.6,b],
      [.2, -.9,"nullspace"],[.2,-1.06,`#mrow(mo("of"),mo("⁢"),mi("A"))`],
  [-.2,-1.4,`#mrow(mo("dim"),mo("⁢"),mi("n"),mo("−"),mi("r"))`],
       [-.6,0,`#mrow(mo("R",fontweight="bold"))`^n],
       [1.8,.9,A*x[r] = b],
       [2, .2, A*x = b], [1.6, -.6, A*x[n] = 0],
       [3.7,1.1,"column"],[3.7,0.98,"space"],
       [4.4,1.3,`#mrow(mo("dim"),mo("⁢"),mi("r")`],
       [2.8,-.5,"nullspace"],
       [2.8,-.62,`#mrow(mo("of"))`*A^T ],
   [3.2,-.9,`#mrow(mo("dim"),mo("⁢"),mi("m"),mo("−"),mi("r"))`],
       [4, -.1, `#mrow(mo("R",fontweight="bold"))`^m]]):


display(P1,P2,P3,P4,P5,P6,TP,scaling=constrained, axes = none);

dsolve({diff(y(x),x) = (y(x)^2-1)/(x^2-1),y(2)=2});

OK, here's the picture in that case.  The red and blue arrows are u[r] and u[theta], the green arrow is your v1, and the dashed lines show that this is approximately 4.60 * u[r] + 1.96*u[theta].

First of all, you might want to use the option signchange=false, which will plot only the curves Re(y) = 0; the default setting signchange=true also tries to plot curves where Re(y) changes sign by going through infinity.  The plot structure has a CURVES structure containing a number of Arrays for different pieces of curve.  You might try something like this:

> P := implicitplot(....):
   C:= op(1,P):

And then for the j'th piece of curve, where j is an integer from 1 to nops(C)-1,

 >  PLOT(CURVES(op(j,C),op(-1,C)),op(2,P));

You could also put several pieces together, e.g.

> PLOT(CURVES(op(2,C), op(3,C), op(-1,C)), op(2,P));

In polar coordinates, the basis consists of  the vectors u[r] in the radial direction (i.e. directly away from the origin) and u[theta] in the tangential direction (orthogonal to the radial direction, counterclockwise).  At the root point [0,1], u[r] = <0,1> (expressed in the standard cartesian coordinates) and u[theta] = <-1,0>.  MapToBasis is taking the vector
v1 = <3,4> (expressed in cartesian coordinates) and expressing it in terms of the basis u[r] and u[theta] for polar coordinates: in this case v1 = 4 u[r] - 3 u[theta].  The 4 and -3 are the components of the vector in the new basis; it looks like "the x-y components interchanged and a sign added", but that's really just a coincidence arising from the choice of root point.  If you chose a different root point the components would be completely different. 

The LambertW function has infinitely many branches, which can be accessed as LambertW(j,z) for integers j.  All these branches will give solutions of your equation.  If you give solve the AllSolutions option, it returns its answers using these branches:

> eq:=x+s*exp(x * sigma)-mu-s=0: 
solve(eq, x,AllSolutions);

-(LambertW(_Z2,sigma*s*exp(sigma*mu+sigma*s))-sigma*mu-sigma*s)/sigma

In this case Maple is using _Z2 to indicate the branch. 

> case1:= eval(%, {mu=6, sigma=-1, _Z2 = k});
   plots:-complexplot([seq(case1,k=-3..3)],s=-1..0, axes=box);

 

Let n = floor(sqrt(x)).  Then n^2 <= x < (n+1)^2.  We want x - n^2 = 2011, so we need

2*n+1 = (n+1)^2 - n^2 >= 2012.  Thus n >= 1006, and x = n^2 + 2011 >= 1014047.

Does your procedure fun have any local variables?   Any names in the string that is parsed will refer to global variables, not local variables of the procedure containing the call to parse.

It might help if you told us the equations.  In general, for non-polynomial equations there is no guarantee that solve (I assume that's what you used, rather than Solve) will find all solutions.

You can try RootFinding[Analytic] to find complex solutions in a given rectangle of the complex plane, for a given value of one of the variables.

A:= op(1,BodePlot(sys3)):
plotsetup(jpeg,plotoutput="c:/myfolder/bplot1.jpg",plotoptions="height=200,width=200");
A[1,1];
plotsetup(jpeg,plotoutput="c:/myfolder/bplot2.jpg",plotoptions="height=200,width=200");
A[2,1];
plotsetup(default);


Do you mean to find a representative of each right coset of a subgroup of S6?  If so, see cosets in the group package.  Or do you mean to find the left or right coset corrresponding to a particular element?  If so, use map2 or map, mulperms and elements.  For example, suppose H is the subgroup of S6 generated by [[1,2,3,4,5,6]] and [[1,2],[3,4],[5,6]], and g = [[1,2,3]] (using disjoint cycle notation.)

> S6:= permgroup(6, {seq([[i,i+1]],i=1..5)});
    H:= permgroup(6, {{[[1,2,3,4,5,6]],[[1,2],[3,4],[5,6]]});
    g:= [[1,2,3]];
    gH:= map2(mulperms,g,elements(H));
    Hg:= map(mulperms,elements(H),g);
First 16 17 18 19 20 21 22 Last Page 18 of 138