Preben Alsholm

13613 Reputation

22 Badges

19 years, 229 days

MaplePrimes Activity


These are replies submitted by Preben Alsholm

@goli Surely the positive solution is used also for y'(x).

Try this plot, which shows the function and its derivative.

plot(['Y(x)',eval(yp,y='Y(x)')],x=-3..1.5,caption="y (i.e. Y, red) and the derivative of y (using implicitdiff and Y, blue)",color=[red,blue]);

Notice that

factor(yp);

returns 5*y*(4*x+7)*(1+x)^2/(9*y^2+2+7*x+9*x^2+5*x^3+x^4).

Thus yp has two zeros, nicely confirmed by the plot.

Another way of getting to your numerical solution is to turn your equation into a differential equation with an appropriate initial condition, which could be y(-1) = 1, since x=-1 and y=1 satisfies eq(x).

ode:=diff(y(x),x)=subs(y=y(x),yp);

res:=dsolve({ode,y(-1)=1},numeric,output=listprocedure);
Yode:=subs(res,y(x));
plot(Yode,-3..1.5);

If you only want to plot y and y', then you need only do

plots:-odeplot(res,[[x,y(x)],[x,rhs(ode)]],-3..1.5);

@goli I think you are using Robert Israels's reformulation of the equation

eq2:= x->(y^2 - (1+x)^3 - (1+x)^4)^5 - y=0;

which for y>0 is equivalent to eq. However, for general y they are not equivalent.

The following does give two curves, yes, one above the x-axis, and one below.

plots:-implicitplot(eq2(x), x=-10..10,y=-10..10,grid=[100,100],gridrefine=2);

Using eq you only get a curve above the x-axis.

I thought you were interested in the one above?

@goli I think you are using Robert Israels's reformulation of the equation

eq2:= x->(y^2 - (1+x)^3 - (1+x)^4)^5 - y=0;

which for y>0 is equivalent to eq. However, for general y they are not equivalent.

The following does give two curves, yes, one above the x-axis, and one below.

plots:-implicitplot(eq2(x), x=-10..10,y=-10..10,grid=[100,100],gridrefine=2);

Using eq you only get a curve above the x-axis.

I thought you were interested in the one above?

@goli Here are the different commands.

restart;
eq:=x->y^(-1/5)*(y^2-(1+x)^3-(1+x)^4)=1;
Y:=x->fsolve(eq(x),y);
plot(Y,-10..10);
plots:-implicitplot(eq(x), x=-10..10,y=0..120,grid=[150,150]);
plot(fdiff(Y,[1],x),x=-2..2,caption="The derivative of y using fdiff on Y");
yp:=implicitdiff(eq(x),y,x);
plot(eval(yp,y='Y(x)'),x=-2..2,caption="The derivative of y using implicitdiff and Y");

@goli Here are the different commands.

restart;
eq:=x->y^(-1/5)*(y^2-(1+x)^3-(1+x)^4)=1;
Y:=x->fsolve(eq(x),y);
plot(Y,-10..10);
plots:-implicitplot(eq(x), x=-10..10,y=0..120,grid=[150,150]);
plot(fdiff(Y,[1],x),x=-2..2,caption="The derivative of y using fdiff on Y");
yp:=implicitdiff(eq(x),y,x);
plot(eval(yp,y='Y(x)'),x=-2..2,caption="The derivative of y using implicitdiff and Y");

After using combine you can use

convert(%,phaseamp,t);

After using combine you can use

convert(%,phaseamp,t);

My Maple 14 uses HeunG, no HG appears.

@GeorgesL In any case, it is not a bug. It is a decision that was made. What do you think 0^k should evaluate to, when k is unassigned?

@GeorgesL In any case, it is not a bug. It is a decision that was made. What do you think 0^k should evaluate to, when k is unassigned?

Good question.

I think the solution f = constant and g = 0 is unstable, so if your solution approaches such a solution the numerical solution may run into severe problems.

So you got work to do :-)

Good question.

I think the solution f = constant and g = 0 is unstable, so if your solution approaches such a solution the numerical solution may run into severe problems.

So you got work to do :-)

@soechristian Here is a simple example.

sys:={y=x^2-1,y=x};
res:=solve(sys,{x,y},explicit);

#This is just an example of the use of evaluating some expression at res[1] or res[2]:

expand(eval(x^2+y^2-1,res[1]));
expand(eval(x^2+y^2-1,res[2]));

#Now actually assigning
assign(res[1]);
x,y;

res[1] refers to the first result in the sequence res.

@soechristian Here is a simple example.

sys:={y=x^2-1,y=x};
res:=solve(sys,{x,y},explicit);

#This is just an example of the use of evaluating some expression at res[1] or res[2]:

expand(eval(x^2+y^2-1,res[1]));
expand(eval(x^2+y^2-1,res[2]));

#Now actually assigning
assign(res[1]);
x,y;

res[1] refers to the first result in the sequence res.

@hirnyk For some functions coords = polar makes the pictures look nice:

 

plots:-conformal(z,z=0..1+Pi*I,numxy=[20,100],grid=[10,25],coords=polar,scaling=constrained,caption="The z-plane"):

plots:-conformal(z,z=0..1+Pi*I,numxy=[20,100],grid=[10,25],coords=polar,scaling=constrained,caption="The z-plane")
plots:-conformal(sec(z),z=0..1+Pi*I,numxy=[20,100],grid=[10,25],coords=polar,scaling=constrained,caption="The w-plane"):

plots:-conformal(sec(z),z=0..1+Pi*I,numxy=[20,100],grid=[10,25],coords=polar,scaling=constrained,caption="The w-plane")
plots:-display(Array([%%,%]));

First 216 217 218 219 220 221 222 Last Page 218 of 229