PatrickT

Dr. Patrick T

2108 Reputation

18 Badges

16 years, 299 days

MaplePrimes Activity


These are replies submitted by PatrickT

okay, I guess we need clarification about what you mean by "size of the display"

okay, I guess we need clarification about what you mean by "size of the display"

Have you tried raising the value of Digits? It's hard to help without a minimum working example.

Have you tried raising the value of Digits? It's hard to help without a minimum working example.

@jbprimes 

It would be easier to comment with more information, for instance what value of Digits you use, what method of solution you use, do you specify a stepsize, how long is the horizon over which you integrate, etc. it's possible that these may matter. 1e-16 is a very small number... a minimum example would help understand you.

@jbprimes 

It would be easier to comment with more information, for instance what value of Digits you use, what method of solution you use, do you specify a stepsize, how long is the horizon over which you integrate, etc. it's possible that these may matter. 1e-16 is a very small number... a minimum example would help understand you.

I thought about redefining the labels with textplot3d, but it's not plain sailing: if I place the textplot3d labels where I'd like them they get cropped too, so it doesn't really help. I can position the new labels inside, then they don't get cropped out, but it's not as pretty.


restart;
### test plot

testPlot := plot3d(x*y
  , x = -1 .. 1
  , y = -1 .. 1
  , 'axes' = box
  , 'labels' = [ ``, ``, `` ]
  , 'labels' = [ X, Y, Z ]
  , 'view' = [ -1 .. 1, -2 .. 2, -3 .. 3 ]
#  , 'view' = [ -1 .. 1, default, -3 .. 3 ] #doesn't work with default
) :

#testPlot;

### Procedure to change plot labels

FixPlotLabels := proc(p)
    local l, v, pl, tl;
    # extract plot labels
    l := select(type,[op(eval(p))], specfunc(anything,{AXESLABELS}));
    l := [op([1,1],l),op([1,2],l),op([1,3],l)];
    # if plot has no labels, set them to x,y,z
    if op(l)=NULL then l:=[x,y,z]; print("this plot has no labels I can use"); end if;
    # remove labels
    pl:= PLOT3D( remove(type,[op(eval(p))], specfunc(anything,{AXESLABELS}))[]);
    v := select(type,[op(eval(p))], specfunc(anything,{VIEW}));
    v := [op([1,1],v),op([1,2],v),op([1,3],v)];
    tl := plots:-textplot3d(
        [ [ (rhs(v[1])+lhs(v[1]))/2, rhs(v[2])-0.1*(rhs(v[2])-lhs(v[2])), lhs(v[3]), eval(l[1]) ]
        , [ rhs(v[1])-0.1*(rhs(v[1])-lhs(v[1])), (rhs(v[2])+lhs(v[2]))/2, lhs(v[3]), eval(l[2]) ]
        , [ rhs(v[1])-0.12*(rhs(v[1])-lhs(v[1])), lhs(v[2]), (rhs(v[3])+lhs(v[3]))/2, eval(l[3]) ] ]
        , 'font' = [ "times", "roman", 12 ]
        , 'align' = [ {'above','left'} ]
      ) :
    return PLOT3D(op(pl),op(tl));
end proc :

FixPlotLabels(testPlot);

Not exactly pretty...

... and adding an empty caption doesn't help, as I have discovered, because the caption appears to be juxtaposed afterwards on top of the 3d plot, and well I could probably have guessed that was the case. So still searching for a workaround...

@pagan 

The fourth image was added as an afterthought, and not directly pertinent to the problem of rescaling, but I included it to show that the postcript context-menu export tool has problems too, though to its credit it does not crop the 'u' label.

The third image shows that plottools "clears" (some) of the plot information (here the 'view' option is forgotten, the 'labels' appear to have been removed, but the 'orientation' looks to have been preserved, maybe)

Plot 1: Context Menu: Export: label 'u' at the bottom is cropped out of the image.

Plot 2: Context Menu: Manipulator->Scale->Export: Rescaling the plot ever so slightly and the label 'u' at the bottom reappears.

Plot 3: Plottools-Scale : all plots-display info disappears:

Plot 4 : Context-menu -> Export as postscript: Completely different interpretation of the 3D data! A bug surely?

I don't know why the third label is often dropped, but it is clear that the other two labels are occasionally "cropped out", so I was looking for ways to control the size of the white area around the plot, with a view to making the crop less tight. I thought I might make the height/width big while keeping the axisheight/axiswidth less so, but no that doesn't seem to work. This reminded me of an old issue which has not been fixed in Maple 16. Since I've reported several problems here, I'll add these here to a wish list for future fixes.

In plotsetup, axisheight and axiswidth appear to be broken. And height and width works only without specifying units. Placing the keyword between single straight quotes ' doesn't work (it's the usually safer way of supplying plot options). A brief summary:

`height=1024`         #works
`height=1024pt`       #fails
`'height'=1024`       #fails
`'height'=1024pt`     #fails

`'axisheight'=1024`   #fails
`'axisheight'=1024pt` #fails
`axisheight=1024`     #fails
`axisheight=1024pt`   #fails

@acer 

dsolve({sys, f(0) = 0, f(1) = 1, t1(0) = t2(0), t1(1) = 1, t2(1) = 0, u1(1) = 0, u2(1) = 0,
D(t1)(0)=-D(t2)(0), D(u1)(0)=-D(u2)(0)}, fcns, type = numeric, method = bvp[middefer]);

Error, (in dsolve/numeric/bvp/convertsys) unable to convert to an explicit first-order system

Could the problem be coming from this equation?

(1/7)*(diff(u2(y), y, y))+(diff(t2(y), y))*(diff(f(y), y))+(diff(t2(y), y))^2+t2(y) = 0;

The derivative of t2(y) is squared, might that imply the existence of two branches and confuse Maple? This is beyond my very limited ability, but here's a link, scroll down to the comment by Joe Riel, does it help?

http://www.mapleprimes.com/questions/101622-Error-in-DEtoolsconvertsys-Unable

@zari 

This is what we mean by copy-pasting 1D Maple input:

sys := diff(u1(y),`$`(y,2))+48+t1(y) = 0, 1/7*diff(t1(y),`$`(y,2))+t1(y) = 0, diff(u2(y),`$`(y,2))+48+t2(y) = 0, 1/7*diff(u2(y),`$`(y,2))+diff(t2(y),y)*diff(f(y),y)+diff(t2(y),y)^2+t2(y) = 0, diff(f(y),`$`(y,2))+diff(t2(y),`$`(y,2)) = 0:

fcns := {f(y), t1(y), t2(y), u1(y), u2(y)}:

> p := dsolve({sys, f(0) = 0, f(1) = 1, t1(0) = t2(0), t1(1) = 1, t2(1) = 0, u1(1) = 0, u2(1) = 0, diff(t1(0), y) = -(diff(t2(0), y)), diff(u1(0), y) = -(diff(u2(0), y))}, fcns, type = numeric, method = bvp[middefer]);

Error, (in dsolve/numeric/process_input) invalid specification of initial conditions, got 0 = 0

 

Unfortunately I don't have time to look into it right now.

0=0 refers to this problem (check the last two):

f(0) = 0, f(1) = 1, t1(0) = t2(0), t1(1) = 1, t2(1) = 0, u1(1) = 0, u2(1) = 0, diff(t1(0), y) = -(diff(t2(0), y)), diff(u1(0), y) = -(diff(u2(0), y));


  f(0) = 0, f(1) = 1, t1(0) = t2(0), t1(1) = 1, t2(1) = 0, u1(1) = 0, u2(1) = 0, 0 = 0, 0 = 0


could you make that a copy-pastable input please?

There are more than one way to set up the call to dsolve. You could check the dsolve help files. Or you could copy-paste a minimal example of your system and boundary conditions here, so that we can work on it to help you. Copy-paste in 1D Maple input format only, no images.

First 12 13 14 15 16 17 18 Last Page 14 of 93