MaplePrimes Questions

Hey everyone!

I have a complex function stored in a file (Comp-func.txt). The function is continues everywhere on the real axis (X-axis.txt). However, its log shows a jump somewhere close to x=-1.5. I would like to understand how Maple interprets this "jump" and how to avoid such numerical artifact.

thank you.

 Comp-func.txt

Jump-Log-Func.mw

X-axis.txt

Dear all

Can I compute using maple some Riemann Stieltjes integrals 

RSI.mw

Thanks 

This also looks like an applyrule bug.

restart;

kernelopts(version);

`Maple 2021.2, X86 64 LINUX, Nov 23 2021, Build ID 1576349`

double_angle_rule := [
        sin(x::name/2)*cos(x::name/2) = 1/2*sin(x),
        sin(x::name/2)^2 = 1/2*(1-cos(x)),
        cos(x::name/2)^2 = 1/2*(1+cos(x))
];

[sin((1/2)*x::name)*cos((1/2)*x::name) = (1/2)*sin(x), sin((1/2)*x::name)^2 = 1/2-(1/2)*cos(x), cos((1/2)*x::name)^2 = 1/2+(1/2)*cos(x)]

C := < cos(1/2*u)*sin(1/2*u), cos(1/2*u)^2 >;

Vector(2, {(1) = cos((1/2)*u)*sin((1/2)*u), (2) = cos((1/2)*u)^2})

This application fails. Why?

applyrule~(double_angle_rule, C);

Error, dimension bounds must be the same for all container objects in an elementwise operation

Download applyrule-bug2.mw

 

This looks like a bug to me but please correct me if it is not.

restart;

kernelopts(version);

`Maple 2021.2, X86 64 LINUX, Nov 23 2021, Build ID 1576349`

half_angle_rule := [
        sin(x::name) = 2*sin(x/2)*cos(x/2),
        cos(x::name) = 1 - 2*sin(x/2)^2
];

[sin(x::name) = 2*sin((1/2)*x)*cos((1/2)*x), cos(x::name) = 1-2*sin((1/2)*x)^2]

In this example, Maple applies the rule to the first element only.
It should apply to both.

A := < sin(u), sin(u) >;
applyrule~(half_angle_rule, A);

Vector(2, {(1) = sin(u), (2) = sin(u)})

Vector[column](%id = 36893628627946684772)

In this example, Maple applies the rule to the second element only.
It should apply to both.

B := < cos(u), cos(u) >;
applyrule~(half_angle_rule, B);

Vector(2, {(1) = cos(u), (2) = cos(u)})

Vector[column](%id = 36893628627946688132)

Download applyrule-bug1.mw

 

How to trace the 2 parabolas that pass through 4 cocyclical points. Thank you

Hello all. I'm using version 2021.2 to try to make some simple energy plots for my research. The math is pretty straightforward, but for some reason I cannot get the results to plot properly. My code is below:

restart;
A := 7.17;
B := 2.56*10^(-3);
C := 0.08*10^5;
_local(D);
1;
D := 0*10^(-6);
                           A := 7.17

                      B := 0.002560000000

                          C := 8000.00

                             D := 0

T_0 := 298; 

G0 := -71.398;

S0 := 45.106;

Hf := -57.95;

 

cp := A + B*T + C/T^2 + D(T)^2;             

                           

`&Delta;H` := int(cp, T = T_0 .. T);

`&Delta;S` := int(cp/T, T = T_0 .. T);
           
G := -S0*T - T*`&Delta;S` + Hf + `&Delta;H`;

plot(G, T = T_0 .. T_max);

Which yields the following error message:

"Warning, unable to evaluate the function to numeric values in the region; see the plotting command's help page to ensure the calling sequence is correct"

I've looked through everything I can find on this issue, and I'm coming up empty. Anyone know what's happening here?

Dear colleagues.

I use gradplot for a displacement vector in x-direction only, as foolows

gradplot(u1(x), x = 0 .. a, y = 0 .. b, grid = [10, 10], arrows = SLIM, color = u1(x), T, caption = typeset("The displacement field"), fieldstrength = fixed, size = [0.3, 0.5])

I need to make color legend to show the minimum and maximum value and in between for the displacement.

Amr

I need to use convert of complex exponentials to trig, but only to convert exp(I*x) to cos/sin using Euler formula.

The problem is that, since this is done in code without looking at what is inside the exp(), Maple will also convert non complex exponentials as exp(x) to hyperpolic trig which I do not want.  An example will make this clear

For an example, given exp(3*I*x - x)  and applying convert/trig to this it gives 

             (cosh(x) - sinh(x))*(cos(3*x) + sin(3*x)*I)                       --(1)

But I only want to conver the exp(3*I*x) part of the of the above to obtain

          exp(-x) *  (cos(3*x) + sin(3*x)*I)                          ---(2)

I can break  exp(3*I*x - x) first using expand command and obtain  exp(-x) exp(3*I*x) and then parse this and filter out the complex exponentials (may be using select with has I) and then use convert on those terms only leaving the non-complex exponentials alone. But this gets messy for more complex exponentials.

Is there an easy way to tell Maple  to convert expression of the form exp(I*f(x) + g(x)) to trig but only to sin/cos, hence leaving the exp( g(x) ) as a factor? I looked at help but see nothing there so far.

Maple 2021.2

I try to know an equation of the tangent on the point [0.504244923, 0.3781836925] on the hyperbola7*x^2 - 7*y^2 - 12.0*x + 9.0*y + 2.25 - 2*x*y=0.How can I do that? Thank you.

I see that one of the parameters of the  function Graph accepts a Array of neighbors.

So I gave it a try. 

G := GraphTheory:-Graph([1,2],[[2],[1]])

G := `Graph 10: an undirected unweighted graph with 2 vertices and 1 edge(s)`

It looks pretty good. But there's something wrong with the following codes.

G := GraphTheory:-Graph([0,1],[[1],[0]])

Error, (in GraphTheory:-Graph) invalid vertex 0 in list of neighbors

G := GraphTheory:-Graph(["0","1"],[["1"],["0"]])

Error, (in GraphTheory:-Graph) cannot determine if this expression is true or false: 1" < 1 or 2 < "1
 

G := GraphTheory:-Graph(["a","b"],[["b"],["a"]])

Error, (in GraphTheory:-Graph) cannot determine if this expression is true or false: b" < 1 or 2 < "b
 

How to use  Array of neighbors in  Graph  correctly?

 

PS: The source of the problem is that I got the following list of adjacencies of a graph  in Python and I want to convert it to  a graph in Maple. Its vertices are [0,1,2, ..., 9].

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

 

G := GraphTheory:-Graph([$0..9],[[1, 2, 3, 4, 5, 6], 
[0, 2, 3, 4, 7, 8], [0, 1, 3, 5, 7, 9],
 [0, 1, 2, 6, 8, 9], [0, 1, 5, 6, 7, 8],
 [0, 2, 4, 6, 7, 9], [0, 3, 4, 5, 8, 9],
 [1, 2, 4, 5, 8, 9], [1, 3, 4, 6, 7, 9], 
[2, 3, 5, 6, 7, 8]])

Error, (in GraphTheory:-Graph) invalid vertex 0 in list of neighbors

L=100 H, R=20 ohm, C=1/401 F, DC=200 V and Impulse =2000 V. q(0)=0 and Q'(0)=2000/L.
Maple new user can't show the ODE function. I just use the toolber menu. 

Tokoro.

restart;
with(inttrans):
U__0:=20:

U := t -> U__0*exp(-1/10*t)*cos(2*t):

plot(U(t), t = 0 .. 2*Pi,
     axis[2] = [tickmarks = [0 = 0, 20 = U__0]],
     labels = [t, 'U(t)'], size=[500,300]);

 

laplace(U(t), t, s)

200*(10*s+1)/((10*s+1)^2+400)

(1)

simplify(200*(10*s+1)/((10*s+1)^2+400))

(2000*s+200)/(100*s^2+20*s+401)

(2)

expand((2000*s+200)/(100*s^2+20*s+401))

2000*s/(100*s^2+20*s+401)+200/(100*s^2+20*s+401)

(3)

"Y(s):=((20)/(s)*100*s)/(100 s+20+401/(s))+(200/(s))/(100 s+20+401/(s))"

proc (s) options operator, arrow, function_assign; 2000/(100*s+20+401/s)+200/(s*(100*s+20+401/s)) end proc

(4)

" y(t):=invlaplace(Y(s),s,t):"

plot(y(t), t = 0 .. 2*Pi, axis[2] = [tickmarks = [0 = 0, 20 = U__0]], labels = [t, 'U(t)'], size = [500, 300])

 

Parse:-ConvertTo1D, "first argument to _Inert_ASSIGN must be assignable"

Error, illegal use of an object as a name

"L:=100:R:=20:C:=1/401:E:=200:L*i(0):=2000:q(0):=0:"

 

NULL

NULL

dsolve[interactive]()

 

Error, invalid function arguments

"diff(,t)"

 

plot([diff(q(t), t), 20*exp(-(1/10)*t)*cos(2*t)], t = 0 .. 2*Pi)

Warning, expecting only range variable t in expression diff(q(t),t) to be plotted but found name q

 

 

plot([q(t), (4000/401)*exp(-(1/10)*t)*sin(2*t)-(200/401)*exp(-(1/10)*t)*cos(2*t)+200/401], t = 0 .. 2*Pi)

Warning, expecting only range variable t in expression q(t) to be plotted but found name q

 

 

I am trying to perform a numerical integration of a matrix using parallel computing. I have found two packages to do that:

1. With Threads package

A:=Matrix([x,x^2],[2*x,sin(x)]);

Threads[Map](int,A,x=0..2,numeric=true);

This code does not parallelize at my Ryzen 5 processor and is using exactly 1 logical core during computation. The matrix is just an example, real matrices are much bigger.

kernelopts(multithreaded) returns true

kernelopts(numcpus) returns 6 when SMT is off and 12 when SMT is on (pretty weird though, it should always return 6)

2. With Grid package

A:=Matrix([x,x^2],[2*x,sin(x)]);

Threads[Map](int,A,x=0..2,numeric=true);

This leads to numerous messages:

"Error, attempting to assign to `int` which is protected.  Try declaring `local int`; see ?protect for details."

Meanwhile, the rezult seems OK and all cores are working to produce it.

What am I doing wrong?

Hello, 

I am doing symbolic calculations of multi-body kinematics which involves more than 40-degrees of freedom. I built a module that will construct initial kinematic calculations and it finshes fairly quicly, (about 20s). When I want to retrieve these calculations, stored as proprties of the module, it takes really a long time, we are talking more than 30min. It's strange because these calcualtions were already made during the initalization of the module, I am just retriving them for the purpose of writing the symbolic results to a file to later be used in Matlab as functions. 

Any word of advice?

Thanks. 

Hi guys,

I can not solve this integral with maple ! I really appreciate if someone can help me! Mathematical gives a solution in terms of hypergeometric function! 

p^2 , m, \epsilon, D > 0 and i is imaginary number 

Thanks 111.mw

I've got a really bizarre error. In my quite short code, if I do not have the print statement, I get the error message 'Error, (in fib_even_sum) illegal use of an object as a name'. If I do use the print statement, the code runs fine, albeit having printed an unnecessary zero.

Here's the code:

fib_even_sum := proc()::integer:

options threadsafe,autocompile:

uses combinat:

local val := 0, n := 1, FN := 0:

#print(%);

while FN <= 4000000 do:

if type(FN,even) then:

val += FN:

else end if:

++n:

FN := fibonacci(n):

end do:

return val:

end proc:

fib_even_sum();

I can't see what would be making it behave like this; perhaps I'm missing something really obvious?

First 250 251 252 253 254 255 256 Last Page 252 of 2338