MaplePrimes Questions

Hi, I want to animate the motion of an electrond around a negative-source electric field. The trajectory would be iperbolic, however I've encountered one problem: I have to compose the movemente with 4 different animate pointplot3d, and they all start at a certain point at the same time and end in another at the same time. Can I make it so that they all start when another one has finished and only the moving one is shown?

display(
animate(pointplot3d, [[A, sqrt(A^2 - 1), 0], symbol = solidsphere, symbolsize = 15, color = "Blue"], A = 1 .. 3), 
pointplot3d([0, 0, 0], symbol = solidsphere, color = "Blue", symbolsize = 15), 
animate(pointplot3d, [[-A, -sqrt(-1 + (-A)^2), 0], symbol = solidsphere, symbolsize = 15, color = "Blue"], A = -3 .. -1), 
animate(pointplot3d, [[A, 3*sqrt(2)/4*A - sqrt(2)/4, 0], symbol = solidsphere, symbolsize = 15, color = "Blue"], A = 3 .. 6), 
animate(pointplot3d, [[-A, 3*sqrt(2)/4*A - sqrt(2)/4, 0], symbol = solidsphere, symbolsize = 15, color = "Blue"], A = -6 .. -3), 
implicitplot3d(x^2 + y^2 + z^2 = 17, x = -6 .. 6, y = -10 .. 10, z = -10 .. 10, color = "Green", style = wireframe), 
scaling = constrained)

This is the code I've come up with, the blue still point is the elctron which powers the field, the moving blue point (there are 4 of them but all represent the same thing) is the moving electron and the green ball is a representation of the electric field.

Edit: I'll use the code for interactive components.

Thanks in advance to everyone!

 

I have a list of 1's and 2's. Something like [1,1,1,2,2,2]. I want to remove 1 or 2 from the list (only once), without needing to mention at which place. The remove command removes all of the occurrences, I need something similar which remove the given element only once.
>L:[1,1,1,2]
>remove(has, L, 1)
[2]

I want the output to be [1,1,2]

Does Maple support nested modules, to better organize library code?

Hi,

I have created a simple command which extracts the term containing the input. It works fine when I have more than one term in the expression but fails when there is the only one term in the expression. See below.

LT:= (expr, term)-> select(has, expr, term) #extract the operand containing the "term" in the given expression "expr"


>A:=t*u[1,1,1]*u[1,1,1,2]+2;
             

(input)>LT(A, u[1,1,1]);# works as expected, extracting the operand containing u[1,1,1]
 (output) t u[1, 1, 1] u[1, 1, 1, 2]

>op(A);#works, there are two operands
 t u[1, 1, 1] u[1, 1, 1, 2], 2

>A:=t*u[1,1,1]*u[1,1,1,2];
 

>LT(A, u[1,1,1]);#doesn't work, expected output is tu[1,1,1]u[1,1,1,2]
 u[1, 1, 1]

>op(A); doesn't work, expected output is tu[1,1,1]u[1,1,1,2]
t, u[1, 1, 1], u[1, 1, 1, 2]

Find the sum of the degrees of the Neighbors of a vertex say u in a graph G. Kind help with writing a function.

I'm trying to create a custom component in MapleSim 2021, and I want to use Thermal Fluid Flow Ports. However, they don't show up as a type of port in the port Type dropdown.  How can I create a thermal fluid flow port using the Custom Component Template?

Let$ (C):f(x)=3+\frac{(e^{x^2}+e)}{e^{x^2}-e)}$.Find the equation of the circle touching the graph $(C)$ at three points?

dsolve accept system of first order ode's in the form x'=A x, where x' is vector, A is matrix of coefficients and x are the dependent variables. This is convenient since one does not have to convert things to a list.

But  dfieldplot and phaseportrait and DEplot do not accept this form. One must convert things to list first.

Here is an example

restart;
sys:=Vector([diff(x(t),t),diff(y(t),t)]) = Matrix([[1,2],[0,3]]).Vector([x(t),y(t)]);
dsolve(sys)

But

DEtools:-dfieldplot(sys,[x(t),y(t)],t=0..4,x=-4..4, y=-4..4);

Error, (in DEtools/dfieldplot) system must have same number of dependent variables as DE's.

workaround is to write the system as list

new_sys:=[diff(x(t), t)=x(t) + 2*y(t),diff(y(t), t)=3*y(t)];
DEtools:-dfieldplot(new_sys,[x(t),y(t)],t=0..4,x=-4..4, y=-4..4);

I know one can automate the conversion. But still, it would be better if dfieldplot would accept sys as dsolve did.

Same for 

DEtools:-phaseportrait(sys,[x(t),y(t)],t=0..4,[[x(0)=1,y(0)=0]],x=-4..4, y=-4..4);
#
DEtools:-DEplot(sys,[x(t),y(t)],t=0..4,[[x(0)=1,y(0)=0]],x=-4..4, y=-4..4);

They gives same error.

Since dsolve can do it, may be these other functions can also support taking a system of ode's in vector/matrix form? Any reason why not?

Maple 2021.1

 

 

There seems to be an "issue" when using a indexed name (say x[4]) as the loop index in a seq() mul() or add() command - the indexed name is assigned once the command exits!!

This never(?) happens if the loop index is not an indexed name. A bug??

See the attached which illustrates the issue for the add() command, where x[4] is assigned on exit from add(). The same thing happens if add() is replaced with seq() or mul()

  restart;

#
# x[4] should not be assigned on exit from add() !!
#
  add( u(x[4]), x[4]=1..10);
  x[4];
#
# x__4 is not assigned on exit from add()
#
  add( u(x__4), x__4=1..10);
  x__4;
#
# j is not assigned on exit from add()
#
  add( u(j), j=1..10);
  j;

u(1)+u(2)+u(3)+u(4)+u(5)+u(6)+u(7)+u(8)+u(9)+u(10)

 

10

 

u(1)+u(2)+u(3)+u(4)+u(5)+u(6)+u(7)+u(8)+u(9)+u(10)

 

x__4

 

u(1)+u(2)+u(3)+u(4)+u(5)+u(6)+u(7)+u(8)+u(9)+u(10)

 

j

(1)

 


 

Download aBug.mw

 

 

Hi... I have a long-expression, which I have abbreviated here. I want every 5th term summed. Included is my code, but I need the unassign command (after point 12) for it to work. The problem is when I unhash and insert this unassign('s','X[4]') command into my actual Table of Records procedure, Maple protests. it gives a cryptic: " Error, `(` unexpected " .
How can I modify the original code to sum every 5th term as efficiently as possible as the thing is a 4000 term expression which I later need to numerically integrate?

sum_every_5th.mw


 

I do not remember if there was a post on this before or not
Maple 2021.1

int(arcsin(x)/(1+(-x^2+1)^(1/2)),x)

gives

Error, (in Utils:-TransformAndApply) numeric exception: division by zero

The correct answer should be

((-1 + Sqrt[1 - x^2]) ArcSin[x])/x + ArcSin[x]^2/2 -  Log[1 + Sqrt[1 - x^2]]

I had to go back to Maple 2018, to get no exception:

May be this could be looked at for next Maple version?

My PC is dual-booted (Win10 and Ubuntu 20.04+KDE). After creating a plot (even the simplest one) and enabling Probe Info as described in  https://www.maplesoft.com/support/help/maple/view.aspx?path=worksheet%2Fplotinterface%2Fpointprobei I do not see tooltip with cursor position. All other tooltips (Palettes, Toolbar etc.) work fine, it is only the probe Info tooltip that does not work. The same plot done while running Maple on Win10 works as expected - tooltip is visible. 

Can someone confirm whether it works for them using Linux? I wonder whether this could be Java-related problem when running on Linux KDE with compositing and using Nvidia driver (e.g. color of tooltip is white on white, or rendering does not work as expected).

I do not remember whether it ever worked on Linux. At this moment I am using Maple2021 but for testing purposes I reinstalled Maple2020 and the problem is the same.

Thanks,

Alex

Hi friends! Hope everything is fine here

I want to generate a piecewise function using some already computed functions. Like I compute B[0], B[1], B[2] and B[3] using some formula which are given as,

B[0] := (1/6)*x^3/h^3;
B[1] := (1/6)*(4*h^3-12*h^2*x+12*h*x^2-3*x^3)/h^3;
B[2] := -(1/6)*(44*h^3-60*h^2*x+24*h*x^2-3*x^3)/h^3;
B[3] := (1/6)*(64*h^3-48*h^2*x+12*h*x^2-x^3)/h^3;

Now, I want to define the corresponding piecewise function as

piecewise(x <= 0, 0, 0 < x and x <= h, B[0], `and`(h < x, x <= 2*h), B[1], `and`(2*h < x, x <= 3*h), B[2], `and`(3*h < x, x <= 4*h), (B[3], 0)

similarly for already computed functions B[0], B[1], B[2], B[3] and B[4] which are given as

B[0] := (1/24)*x^4/h^4;
B[1] := -(1/24)*(5*h^4-20*h^3*x+30*h^2*x^2-20*h*x^3+4*x^4)/h^4;
B[2] := (1/24)*(155*h^4-300*h^3*x+210*h^2*x^2-60*h*x^3+6*x^4)/h^4;
B[3] := -(1/24)*(655*h^4-780*h^3*x+330*h^2*x^2-60*h*x^3+4*x^4)/h^4;
B[4] := (1/24)*(625*h^4-500*h^3*x+150*h^2*x^2-20*h*x^3+x^4)/h^4;

I want to define the corresponding piecewise function as

piecewise(x <= 0, 0, 0 < x and x <= h, B[0], `and`(h < x, x <= 2*h), B[1], `and`(2*h < x, x <= 3*h), B[2], `and`(3*h < x, x <= 4*h), B[3], `and`(4*h < x, x <= 5*h), B[4], 0)

Can someone please let me know a general procedure (using seq command, loop etc.) to define piecewise function if B[0], B[1], B[2],...,B[M] are known? I shall be very thankful for your answer.

I have plain text file generated, where each line has mixed numbers and strings. Some of the strings are latex. So they have "\" in them. The data is rectangle. same number of fields on each line, separated by commas.  I use CSV format to read the data to Maple.

I simply want to read this file using Import , which reads it into a matrix (using CSV format), and export it back right away using either ExportMatrix or Export and end up with the same exact file.

But Maple always adds extra "\" each time I export the matrix back to the file. So if I have initially "\sin x" in the file, after reading/writing the file 5 times without touching the data inside Maple, I end up with something like "\\\\\\\\\\\sin x" in the file at the end.

I could ofcourse not use ExportMatrix nor Export and write the data back to the file manually using fprintf using correct format for each field. But it is easier if I can get ExportMatrix to work since there are many fields some are integers, some are real and some are strings.

Here is a simple MWE which shows the problem. Originally I have this file on disk. Called test.txt and has 2 lines in it

1,"\sin x"
2,"this is second line"

Now after doing the following

data:=Import("test.txt",format="CSV",output=Matrix):  
ExportMatrix("test.txt",data,target=csv);

The file on disk now becomes

1,"\\sin x"
2,"this is second line"

And repeating the above one more time, the file becomes

1,"\\\\sin x"
2,"this is second line"

This ofcourse breaks all the latex strings in there.

Is there a way to prevent Maple from doing this? I looked at all the options in help, but do not see on so far.  I also tried Export but that did not work at all. So I'd like to see if ExportMatrix can do it, without adding an extra "\", otherwise, will have to use fprintf directly to export the data back to file.

edit

fyi, I ended up using fprintf to write the data back to disk. May be if there is a solution using ExportMatrix, will change back. This is what I ended up doing

File before

1,"\sin x"
2,"this is second line"

Now run this code

data:=Import("test.txt",format="CSV",output=Matrix):  
file_id := fopen("test.txt",WRITE):
nRows:=LinearAlgebra:-RowDimension(data);
for n to nRows do
    if n<nRows then
       fprintf(file_id,"%d,\"%s\"\n",data[n,1],data[n,2]);
    else
       fprintf(file_id,"%d,\"%s\"",data[n,1],data[n,2]);
    fi;
od;
fclose(file_id);

File after

1,"\sin x"
2,"this is second line"

Now the file is exactly the same as before reading it.

My actual data is more than the above two fields, but that makes the format string longer, that is all.

 

First 401 402 403 404 405 406 407 Last Page 403 of 2427