acer

32405 Reputation

29 Badges

19 years, 349 days
Ontario, Canada

Social Networks and Content at Maplesoft.com

MaplePrimes Activity


These are answers submitted by acer

You could add one or more newline characters "\n" to the end of the axis label.

Below, I add just one.

legend_covers_plot_labels_ac.mw

I'm not entirely sure what you mean by, "So there should be a clear anwer, giving me back the whole RootOf function in the intervall."

Is it perhaps this:

restart

solve({x = RootOf(_Z^2-y, index = real[2])+1, 1 < y, y < 2, y < x}, x)

{x = RootOf(_Z^2-y, index = real[2])+1}

Download QUESTI_2_ac.MW

Or, modifying your original code to only include the extra argument x, the "whole RootOf" form is returned, without the Warning,

restart;
Sol := {x = RootOf(_Z^2 - y, index = real[2]) + 1, 1 < y, y < 2}:
area := {1 < y, y < x}:
Sol_area := solve(Sol union area, x);

{x = RootOf(_Z^2-y, index = real[2])+1}

Download QUESTI_2_acc.mw

I'm not sure what form you want for the final result, but here are two ways to get it as piecewise, and [edited] one way to get it as a single sequence of (in)equalities.

restart;

solve({a = 1/y, b = x/(x + y - 1), x = (y - 1)^2, 1 < y, y < 5/4}, {b,y,x});

piecewise(a <= 4/5, [], a < 1, [{b = 1-a, x = (a-1)^2/a^2, y = 1/a}], 1 <= a, [])

T := solve({a = 1/y, b = x/(x + y - 1)},[x,y]);

[[x = b*(a-1)/(a*(b-1)), y = 1/a]]

new := eval({x = (y - 1)^2, 1 < y, y < 5/4}, T[1]);

{b*(a-1)/(a*(b-1)) = (1/a-1)^2, 1 < 1/a, 1/a < 5/4}

solve(new,b);

piecewise(a <= 4/5, [], a < 1, [{b = 1-a}], 1 <= a, [])

solve(new,[a,b]);

[[a < 1, 4/5 < a, b = 1-a]]

Download QUESTI_1_ac.mw

nb. I do not have the last call as, say, just,
    solve(new)
or,
    solve(new, {a,b})
because while those happen to produce a desired result with requested inequalities for `a`, that happens by "luck" due to the lexicographic ordering of your variable names. Ie, `a` comes before `b`.  Compare,

solve(new,[a,b]);

[[a < 1, 4/5 < a, b = 1-a]]

solve(new,[b,a]);

[[b < 1/5, 0 < b, a = -b+1]]

I prefer it more robust against switching around the variable names, or using another pair of names.

The reason that solve returns NULL is that solving for the {r} variables only has a solution if a constraint is satisfied by some of the remaining names (say, the f[...] names).

restart;

t := add(a[j]*q^j, j = 0 .. 9):

H := diff(t, q):

F := diff(t, q $ 2):

p1 := simplify(eval(t, q = x)) = y[n]:
p2 := simplify(eval(F, q = x)) = f[n]:
p3 := simplify(eval(F, q = x + h/4)) = f[n + 1/4]:
p4 := simplify(eval(F, q = x + h/2)) = f[n + 1/2]:
p5 := simplify(eval(F, q = x + (3*h)/4)) = f[n + 3/4]:
p6 := simplify(eval(F, q = x + h)) = f[n + 1]:
p7 := simplify(eval(F, q = x + (5*h)/4)) = f[n + 5/4]:
p8 := simplify(eval(F, q = x + (3*h)/2)) = f[n + 3/2]:
p9 := simplify(eval(F, q = x + (7*h)/4)) = f[n + 7/4]:
p10 := simplify(eval(F, q = x + 2*h)) = f[n + 2]:

r := seq(a[i], i = 0 .. 9);

a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]

s := p || (1 .. 10):

indets([s],name);

{h, x, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], f[n], f[n+1], f[n+2], f[n+1/2], f[n+1/4], f[n+3/2], f[n+3/4], f[n+5/4], f[n+7/4], y[n]}

raw:=eliminate([s],[r]):

alt := collect(raw[1],
               [f[n],f[n+1],f[n+2],f[n+1/2],f[n+1/4],f[n+3/2],f[n+3/4],f[n+5/4],f[n+7/4]],
               u->simplify(factor(u))):

#print~(alt):

alt[7];  # one of the results

a[6] = (1/135)*(4*x+5*h)*(23*h^2+40*h*x+16*x^2)*f[n]/h^7-(2/45)*(2477*h^3+7740*h^2*x+7440*h*x^2+2240*x^3)*f[n+1]/h^7-(1/135)*(333*h^3+1180*h^2*x+1296*h*x^2+448*x^3)*f[n+2]/h^7-(4/135)*(627*h^3+1780*h^2*x+1584*h*x^2+448*x^3)*f[n+1/2]/h^7-(4/135)*(2003*h^3+6740*h^2*x+6960*h*x^2+2240*x^3)*f[n+3/2]/h^7+(64/135)*(139*h^3+415*h^2*x+384*h*x^2+112*x^3)*f[n+3/4]/h^7+(128/135)*(111*h^3+361*h^2*x+360*h*x^2+112*x^3)*f[n+5/4]/h^7+(64/45)*(x+h)*(13*h^2+32*h*x+16*x^2)*f[n+7/4]/h^7

raw[2]; # this must equal zero for raw[1] to hold;

{96*f[n]+6720*f[n+1]+96*f[n+2]+2688*f[n+1/2]+2688*f[n+3/2]-5376*f[n+3/4]-5376*f[n+5/4]-768*f[n+7/4]-768*f[n+1/4]}

content(raw[2][1]);

96

raw[2]/~%; # this must equal zero for raw[1] to hold;

{f[n]+70*f[n+1]+f[n+2]+28*f[n+1/2]+28*f[n+3/2]-56*f[n+3/4]-56*f[n+5/4]-8*f[n+7/4]-8*f[n+1/4]}

#solve([s],[r],parametric); # another way

 

 

Download abdulganiy_1.mw

Is this the effect you're after?

Q_DataFrame_ac.mw

(If it is, and it gives you a problem for some other example then let me know and I could robustify the subsop step).

ps. I think it might be nice to have an option for that in the Tabulate static export of the Dataframe object.

It seems to be due to a much older -- but apparently rarely occurring -- bug in plotttols:-getdata, on which I will submit a bug report.

In Maple 2024 Explore started to make use of plotttols:-getdata.

Fortunately for your example, it can be avoided by using the Explore option adaptview=false .

Planck_Curve_ac.mw

Is it the same if you add the documented option,

   subfunctions=true

to the simplify call.

That would make it also forget the remember table of `simplify/do`, etc.

Using subs on the generated XML, you can retain "conveniences" of having Tabulate as a command.

GenerateSimilar_Ala_ac.mw
 



Download GenerateSimilar_Ala_ac.mw

It would be nice if Tabulate would offer Cell/Textfield alignment as an option.

You wrote "list of points", but in your code you are instead using a set of lists/points, and not a list of lists/points.

Note the difference between,
   plot( [ [3, 6], [-1, 6], [-1, 1], [-1, -2], [3, -2] ], x=-3..4, y=-4..10, style=line)
and,
   plot( { [3, 6], [-1, 6], [-1, 1], [-1, -2], [3, -2] }, x=-3..4, y=-4..10, style=line)

That is because of the difference in the results of,
   [ [3, 6], [-1, 6], [-1, 1], [-1, -2], [3, -2] ]
versus,
   { [3, 6], [-1, 6], [-1, 1], [-1, -2], [3, -2] }

A set's elements are sorted (an automatic simplification).

I use Ctrl-t to change an Exec Group's execution prompt into a text prompt/mode.

Do these plots have the expected form?

I raised working precision to help with numeric accuracy, as well as added the value for E(0).

I also turned E into an operator, just before the plotting, for the E3(nu) plot. Please check. It's a bit confusing, with the assignments to function calls.

PLanckPh_ac.mw

The GUI puts an amount of space below the title, so that if axes=boxed then upon rotation the corners don't get too close to the title. The effective distance then gets large if the plot is rotated. Unfortunately the distance is similar even if axes=normal.

You can get around it by zooming in the plot. For example, right-click to change "manipulator" to zoom, etc. Then the distance to the title can be reduced. Or you could pan (although, with any zoom that can leave blank space at the other end). Note that if you zoom in then not all the plot may be visible at certain orientations.

It is possible to get such effects programmatically. For example,
Plot_title_too_high_ac.mw
 

Inside the call to plot3d, change,

    eval(M)

to,

    eval(M,last[1])

The Help page for next mentions this at the end of its Description section,

"Note:  Multi-level next statements are not currently supported in 2-D input in the Standard interface."

One big choice is whether to make C be taken from an integer ranges (whose number of elements works nicely with the number of frames), and have the 2*Pi factor occur in the plot command's code.

Or you can keep the range C=0..2*Pi and "turn" the values back to rationals.

I'll do the latter of those below.

And even then, there are still some fun choices for customizing the tickmarks and title, to get results that may clearly illustrate the progression.

I'll disable the paraminfo option of animate, and put the rational C values back in using the title option.

Here are a few variants of that, according to whether the title appears at all values, etc. You can adjust to taste. (Note that the number of frames is a nice multiple of the number of intervals. As Kitonum explained, that's key.)

 

NULL

restart

G := plot(sin(x), x = 0 .. 2*Pi, view = [0 .. 2*Pi, -2 .. 2], color = blue, tickmarks = [piticks, default], labels = ["", ""], gridlines, thickness = 2)

N := 48

plots[animate](proc (C) options operator, arrow; plot(sin(x+C), x = 0 .. 2*Pi, thickness = 3, title = (Typesetting:-Typeset(:-C) = convert(C/Pi, rational)*Pi)) end proc, [C], frames = N+1, C = 0 .. 2*Pi, background = G, labels = ["", ""], paraminfo = false, size = [800, 400], axis[1] = [gridlines = spacing((1/12)*Pi), tickmarks = [spacing((1/6)*Pi), subticks = 3]])

plots[animate](proc (C) options operator, arrow; plot(sin(x+C), x = 0 .. 2*Pi, thickness = 3, title = ifelse(denom(convert(C/Pi, rational)) <= 12, Typesetting:-Typeset(:-C) = convert(C/Pi, rational)*Pi, NULL)) end proc, [C], frames = N+1, C = 0 .. 2*Pi, background = G, labels = ["", ""], paraminfo = false, size = [1000, 400], axis[1] = [gridlines = spacing((1/12)*Pi), tickmarks = [spacing((1/12)*Pi), subticks = 1]], ytickmarks = [-1, 0, 1], axesfont = ["Times", 10])

plots[animate](proc (C) options operator, arrow; plot(sin(x+C), x = 0 .. 2*Pi, thickness = 3, title = ifelse(denom(convert(C/Pi, rational)) <= 6, Typesetting:-Typeset(:-C) = convert(C/Pi, rational)*Pi, NULL)) end proc, [C], frames = N+1, C = 0 .. 2*Pi, background = G, labels = ["", ""], paraminfo = false, size = [1000, 400], axis[1] = [gridlines = spacing((1/12)*Pi), tickmarks = [spacing((1/6)*Pi), subticks = 3]], ytickmarks = [-1, 0, 1], axesfont = ["Times", 10])

 

 

Download Q_Pi_scaling_ac.mw

5 6 7 8 9 10 11 Last Page 7 of 336