Items tagged with plots plots Tagged Items Feed


I'm using my own Maple package to make questions in Maple T.A.. I'm working with finite automata so I'd like to draw graphs in the text of the questions. I have a function that draws automata, it uses plots:-display as it's output. Is there a way that I can use plots:-display in plotmaple, like this? (This is example doesn't work, I'd like to know why and how I have to modify it.)

$circ=maple("geometry:-circle('Circ', [geometry:-point('PP',0,0),3]);
$plo=plotmaple("plots:-display($circ),plotdevice='gif', plotoptions='height=250, width=250'");

Thank you for the answers.

Someone asked on about plotting x*y*z=1 and, while it's easy enough to handle it with implicitplot3d it raised the question of how to get nice constained axes in the case that the x- or y-range is much less than the z-range.

Here's what WolframAlpha gives. (Mathematica handles it straight an an plot of the explict z=1/(x*y), which is interesting although I'm more interested here in axes scaling than in discontinuous 3D plots)

Here is the result of a call to implicitplot3d with default scaling=unconstrained. The axes appear like in a cube, each of equal "length".


Here is the same plot, with scaling=constrained. This is not pretty, because the x- and y-range are much smalled than the z-range.


How can we control the axes scaling? Resizing the inlined plot window with the mouse just affects the window. The plot itself remains  rendered in a cube. Using right-click menus to rescale just makes all axes grow or shrink together.

One unattractive approach it to force a small z-view on a plot of a much larger z-range, for a piecewise or procedure that is undefined outisde a specific range.

                        if abs(z)>200 then undefined;
                        else x*y*z-1; end if;
                      end proc,
                      -1..1, -1..1, -200..200, view=[-1..1,-1..1,-400..400],
                      style=surfacecontour, grid=[30,30,30]);

Another approach is to scale the x and y variables, scale their ranges, and then force scaled tickmark values. Here is a rough procedure to automate such a thing. The basic idea is for it to accept the same kinds of arguments are implicitplot3d does, with two extra options for scaling the axis x-relative-to-z, and axis y-relative-to-z.

implplot3d:=proc( expr,
                  {scalex::numeric:=1, scaley::numeric:=1} )
   local d1, d2, dz, n1, n2, r1, r2, rngs, scx, scy;
   uses plotfn=plots:-implicitplot3d;
   (n1,n2) := lhs(rng1), lhs(rng2);
   dz := rhs(rhs(rng3))-lhs(rhs(rng3));
   (scx,scy) := scalex*dz/(rhs(rhs(rng1))-lhs(rhs(rng1))),
   (r1,r2) := map(`*`,rhs(rng1),scx), map(`*`,rhs(rng2),scy);
   (d1,d2) := rhs(r1)-lhs(r1), rhs(r1)-lhs(r1);
   plotfn( subs([n1=n1/scx, n2=n2/scy], expr),
           n1=r1, n2=r2, rng3, _rest[],
end proc:

The above could be better. It could also detect user-supplied custom x- or y-tickmarks and then scale those instead of forming new ones.

Here is an example of using it,

implplot3d( x*y*z=1, x=-1..1, y=-1..1, z=-200..200, grid=[30,30,30],
            style=surfacecontour, shading=xy, orientation=[-60,60,0],
            scalex=1.618, scaley=1.618 );

Here is another example

implplot3d( x*y*z=1, x=-5..13, y=-11..5, z=-200..200, grid=[30,30,30],
            style=surfacecontour, orientation=[-50,55,0],
            scaley=0.5 );

Ideally I would like to see the GUI handle all this, with say (two or three) additional (scalar) axis scaling properties in a PLOT3D structure. Barring that, one might ask whether a post-processing routine could use plots:-transform (or friend) and also force the tickmarks. For that I believe that picking off the effective x-, y-, and z-ranges is needed. That's not too hard for the result of a single call to the plot3d command. Where it could get difficult is in handling the result of plots:-display when fed a mix of several spacecurves, 3D implicit plots, and surfaces.

Have I overlooked something much easier?


I actually had the same problem on Maple 16. When i go to plot an equation (usually on implicit plots) it just repeats the equation in blue text rather than showing any sort of plot. Im sure i am just missing a simple option somewhere, but for the life of me I cant find it. Any and all help would be appreciated. 

I've been instructed to create an animation showing the changing plots of a single square waveform using 5,10,20,40,80,160,320, and 640 terms in my Fourier series. This is my code right now: 


with (plots):
L := [seq(2^i, i = 0 .. 6)];

[1, 2, 4, 8, 16, 32, 64]

animate( plot, [2/((2*n-1)*Pi))*sin((2*n-1)*Pi*x], n=L);
Error, `)` unexpected


It doesn't work. Can anyone explain what I'm doing wrong, or how to solve my question?

hello evreybody i have these Error :

M:=765 : m:=587 :I:=76.3*10^3 :Jp:=7.3*10^3 :e:=10.92: F:=0.42: omega:=0.56 :ka:=0.1:kb:=0.1:kc:=0.1: lambda1:=0.1 :lambda2:=0.1:lambda3:=0.1:
Error, illegal use of an object as a name


please help 
thank you !

i am using plot command to plot the first vs the second column in the attached file A.txt

it is giving a strange plot. while plotting the first vs second column in kgraph i am getting the correct plot

why is maple giving me a wrong plot 

you can find the two plots and the raw data file A.txt

Download A.txt


Hello Hello everybody 
   I have to solve the following differential equation numerically 




mb:=765 : mp:=587 : Ib:=76.3*10^3 : Ip:=7.3*10^3 : l:=0.92 : d:=10: F:=490: omega:=0.43 :


1352*(diff(diff(x(t), t), t))+587*(10*cos(theta(t))+.92*cos(alpha(t)+theta(t)))*(diff(diff(theta(t), t), t))+540.04*cos(alpha(t)+theta(t))*(diff(diff(alpha(t), t), t))+5870*(diff(theta(t), t))^2*sin(theta(t))+540.04*(diff(theta(t), t)+diff(alpha(t), t))^2*sin(alpha(t)+theta(t))-490*sin(.43*t) = 0



1352*(diff(diff(z(t), t), t))-5870*(sin(alpha(t)+theta(t))+sin(theta(t)))*(diff(diff(theta(t), t), t))-540.04*sin(alpha(t)+theta(t))*(diff(diff(alpha(t), t), t))+5870*(diff(theta(t), t))^2*cos(theta(t))+540.04*(diff(theta(t), t)+diff(alpha(t), t))^2*cos(alpha(t)+theta(t))+13263.12-490*sin(.43*t) = 0



587*(10*cos(theta(t))+.92*cos(alpha(t)+theta(t)))*(diff(diff(x(t), t), t))-587*(.92*sin(alpha(t)+theta(t))+10*sin(theta(t)))*(diff(diff(z(t), t), t))+(142796.8368+10800.80*cos(alpha(t)))*(diff(diff(theta(t), t), t))+[7796.8368+5400.40*cos(alpha(t))]*(diff(diff(alpha(t), t), t))-587*sin(alpha(t))*(9.20*(diff(alpha(t), t))^2-9.20*(diff(theta(t), t)+diff(alpha(t), t))^2)+5297.7924*sin(alpha(t)+theta(t))+57584.70*sin(theta(t)) = 0



540.04*cos(alpha(t)+theta(t))*(diff(diff(x(t), t), t))-540.04*sin(alpha(t)+theta(t))*(diff(diff(z(t), t), t))+(7796.8368+5400.40*cos(alpha(t)))*(diff(diff(theta(t), t), t))+7796.8368*(diff(diff(alpha(t), t), t))-5297.7924*sin(alpha(t)+theta(t))+5400.40*(diff(theta(t), t))^2*sin(alpha(t)) = 0


CI:= x(0)=0,z(0)=0,theta(0)=0,alpha(0)=0,D(x)(0)=0,D(alpha)(0)=0,D(z)(0)=0,D(theta)(0)=0;

x(0) = 0, z(0) = 0, theta(0) = 0, alpha(0) = 0, (D(x))(0) = 0, (D(alpha))(0) = 0, (D(z))(0) = 0, (D(theta))(0) = 0


solution:=dsolve([eq1,eq2,eq3,eq4, CI],numeric);

Error, (in f) unable to store '[0.]/(0.17571268341557e16+[-0.25659510610770e15])' when datatype=float[8]




I don't know why it says : Error, (in f) unable to store '[0.]/(0.17571268341557e16+[-0.25659510610770e15])' when datatype=float[8]


Help pleaase!

thank you !!!

Download systé


i have a non linear equation that depends on three variables e, theta and z.

i have done calculations to calculate e while varying theta and z. theta varied among the vector [0, Pi/4, Pi/3, Pi/2] and z was varying between 1 and 20

when plotting my data it gives the following plot where z is represented on the x-axis and each curve correspond to one theta


i am currently able of fitting one plot to one equation i would like to fit the data points using the nonlinearfit function and to only get one equation for all the plots. is that possible in maple or not


What is the set of the points (x,y) s. t.

y^2+y^3+(y^3-x^2-3*x*y)^(1/4) <= 5*x*y ?

How to draw it with Maple?



Hi guys!


I want to do a fractalzoom into the mandelbrot fractal. The basic idea was to produce all single plot pictures, and then display/animate the zoom by iterate through the list. But I cant find a solution that really works. Any help would be very appreciated :)


So where am I? A single picture is made like this: (Sorry math tool didnt take it)


plot3d(0, -2 .. 1, -1.5 .. 1.5, orientation = [-90, 0], grid = [250, 250], style = patchnogrid, color = mandelbrot, lightmodel = None):

As u can see, I use the colorfunc property to color the plane. The mandelbrot procedure evalueates how many iterations are needed to go beyond 2 (> 2).

I cant post pictures, so heres the code if u want to reproduce some:

mandelbrot := proc (x, y)

local c, z, iterationCount, position, iterations;

z := 0; iterations := 0; iterationCount := 35;

position := Complex(x, y);

c := evalf(position);

while iterations < iterationCount do

    if 2 <= abs(z) then return iterations;

    else z := z^2+c; iterations := iterations+1;

    end if


return iterations



As you can see i get a list of PLOT3D structures, each with different axis sizes or views. The problem now is when i use the straightforward way:

display(plots, insequence=true);

the animated frames get smaller and smaller, because the frame is set to the same size as the first frame. 

Do you have any idea how I can make the axis somewhat dynamic, or do you see a better approach?


Here's the rest of the code to produce the effect. Its nearly hardcoded, because its still in experimental phase, sorry for that :P

The test does the following: Start with window -2 .. 1, -1.5 .. 1.5 and with linear interpolation zoom in to the window -0.82 .. -0.7, -0.2 .. -0.08.

 v is used to store the view explicitely, is explained afterwards


steps := 3:

d1 := (2-0.82)/steps:

d2 := (1+0.7)/steps:

d3 := (1.5-0.2)/steps:

d4 := (1.5+0.08)/steps:

l := Array(1 .. 4):

v := Array(1 .. 4):

for i from 0 to steps do

    v(i+1) := [d1*i-2 .. -d2*i+1, -1.5+d3*i .. 1.5-d4*i, 0 .. 0];

    l(i+1) := plot3d(0, d1*i-2 .. -d2*i+1, -1.5+d3*i .. 1.5-d4*i, orientation = [-90, 0], grid = [100, 100], style = patchnogrid, color = mandelbrot, lightmodel = None);



display a single picture:



create the animation:

ll := convert(l, list):

display(ll, insequence = true);


Another approach:

I tried to explicitely give the view as argument:

display(l(i), view = v(i)), v(i) stored in previous render loop. This works, but then the question to resolve is how to draw each frame into the same plot figure and not creating a new plot window for each one?


Now you should have all informations, any help is very welcome!

Thanks in advance,




can I remove tick marks from axis in plots ?


thank for any  help.

I need you help to make a movies ( animation)  according to the index k=1..10.  k is used in Vect_T[k], vector of time to make an animation of the true solution, and it's also used in Matrix(M[..,..,k]), h

True solution:ow can I make a seq of plots for different value of k. 


plot3d(True_solution(x,y,Vect_T[k]),x=0..a,y=0..b,axes=boxed,grid= [11,11]);

Analytic solution

plots:-matrixplot(Matrix(M[..,..,k]),axes=boxed,tickmarks= [[1="0", 2=" ", 3=" ", 4=" ", 5=".4", 6=" ", 7=" 0.6", 8=" ", 9=".8", 10=" ", 11="1"],[1="0", 2=" ", 3=" ", 4=" ", 5=".4", 6=" ", 7=" 0.6", 8=" ", 9=".8", 10=" ", 11="1"],default],labels=[x,y,u],axes = boxed);

I tried, this:

S:=seq(plots:-matrixplot(Matrix(M[..,..,i]),labels=[x,y,u],axes = boxed),i=1..10):
 But I get only one figure.


I tried

for k from 1 to 10 do
BoxTrue:=BoxTrue, plot3d(True_solution(x,y,Vector_time[k]),x=0..a,y=0..b,axes=boxed,grid= [11,11]): od:
display(BoxTrue, insequence=true);
also, no display









I am unable to plot DP3 vs Q, not only it take very long time but didn't give any output.

Please have a look.




Pls, I tried solving the system of PDE numerically.... When I did for just 1 plot, the graph was plotted but When I varied some parameters its not coming out.... Also, its not bringing any error so I can't trace out my PLS HELP ME OUT with the multiple plots... Attached are my source codes links....


I have created a diagram with "plots" and "plottools" that involves the line command creating a line in 3-space.  It works just fine on all of my machines and versions of Maple but it fails on Maple 17 in the Windows 8 environment.   By "fai;s" I mean that it does not draw the line; it does not generate an error message.   Any idea what's happening? 

1 2 3 4 5 6 7 Page 1 of 8