Maple 2015 Questions and Posts

These are Posts and Questions associated with the product, Maple 2015

how to fasten dsolve and is it possible to timeout faster if it know no solution earlier?

i split into near 500 blocks of nested for loop, total around 42 billions trials

i run in cmaple, 

i see it run the first 4 blocks of code and output to files,  which are daff001, daff002, daff003 and daff004

it seems that it can run parallel intelligently though i write in serial lines.

but it run a very long time, still running near first 4000 records

window 10 use 3.4GB memory, only 4GB memory rest

but 4000 records use more than 4GB memory

i just hope to run 1000 records every day, hope 1000 records can be finished within a few hours

and plan to run around 500days

 

restart:
read "D:\\daff2039mm.m":
with(combinat):
appendto("D:\\daff001.txt");
for ii from 1 to 1 do
for jj from 1 to 1 do
for kk from 1 to 1 do
if ii < jj and jj < kk then
if mm[ii] <> mm[jj] and mm[jj] <> mm[kk] then
sol := dsolve([mm[ii] , mm[jj] , mm[kk] ],[a(t), b(t), c(t)]);
if nops([sol]) = 1 then
print([mm[ii], mm[jj], mm[kk]]);
print(sol);
print(" * **");
end if:
end if:
end if:
od:
gc();
od:
od:

restart:
read "D:\\daff2039mm.m":
with(combinat):
appendto("D:\\daff002.txt");
for ii from 1 to 1 do
for jj from 1 to 1 do
for kk from 1 to 1001 do
if ii < jj and jj < kk then
if mm[ii] <> mm[jj] and mm[jj] <> mm[kk] then
sol := dsolve([mm[ii] , mm[jj] , mm[kk] ],[a(t), b(t), c(t)]);
if nops([sol]) = 1 then
print([mm[ii], mm[jj], mm[kk]]);
print(sol);
print(" * **");
end if:
end if:
end if:
od:
gc();
od:
od:

restart:
read "D:\\daff2039mm.m":
with(combinat):
appendto("D:\\daff003.txt");
for ii from 1 to 1 do
for jj from 1 to 1 do
for kk from 1001 to 2001 do
if ii < jj and jj < kk then
if mm[ii] <> mm[jj] and mm[jj] <> mm[kk] then
sol := dsolve([mm[ii] , mm[jj] , mm[kk] ],[a(t), b(t), c(t)]);
if nops([sol]) = 1 then
print([mm[ii], mm[jj], mm[kk]]);
print(sol);
print(" * **");
end if:
end if:
end if:
od:
gc();
od:
od:

restart:
read "D:\\daff2039mm.m":
with(combinat):
appendto("D:\\daff004.txt");
for ii from 1 to 1 do
for jj from 1 to 26 do
for kk from 2001 to 2001 do
if ii < jj and jj < kk then
if mm[ii] <> mm[jj] and mm[jj] <> mm[kk] then
sol := dsolve([mm[ii] , mm[jj] , mm[kk] ],[a(t), b(t), c(t)]);
if nops([sol]) = 1 then
print([mm[ii], mm[jj], mm[kk]]);
print(sol);
print(" * **");
end if:
end if:
end if:
od:
gc();
od:
od:

restart:
read "D:\\daff2039mm.m":
with(combinat):
appendto("D:\\daff005.txt");
for ii from 1 to 1 do
for jj from 26 to 51 do
for kk from 2001 to 2001 do
if ii < jj and jj < kk then
if mm[ii] <> mm[jj] and mm[jj] <> mm[kk] then
sol := dsolve([mm[ii] , mm[jj] , mm[kk] ],[a(t), b(t), c(t)]);
if nops([sol]) = 1 then
print([mm[ii], mm[jj], mm[kk]]);
print(sol);
print(" * **");
end if:
end if:
end if:
od:
gc();
od:
od:

i have already release memory with gc() in the most inner for loop ]

,but it still use up my memory

once it printed two lines each time, actually it can release memory

but why it still use up memory

read "D:\\hello.m":
with(combinat):
appendto("D:\\gogogo.txt");
for ii from 1 to 2040 do
for jj from 1 to 2040 do
for kk from 1 to 2040 do
if ii < jj and jj < kk then
if mm[ii] <> mm[jj] and mm[jj] <> mm[kk] then
sol := dsolve([mm[ii],mm[jj],mm[kk]],[a(t),b(t),c(t)]);
print([mm[ii],mm[jj],mm[kk]]);
print(sol);
print("***");
end if:
end if:
od:
gc();
od:
od:

 

i can only think

use c# to generate code with file write, nested for loop every 1000 records 

is it the only way to do?

 

int counter = 0;
for (int i=1; i<=2040; ++i)
{
for (int j = 1;j <= 2040; ++j)
{
for (int k = 1; k <= 2040; ++k)
{
if(counter % 1000 == 0)
{
Console.Write(i.ToString() + ","+j.ToString() + ","+k.ToString());
Console.Write("\r\n");
}
counter = counter + 1;
}
}
}

 

Is it possible to create several animation windows and run them simultaneously? 

I'm feeling that the answer to this question will be no, so I explain my problem. I have an animation of rotating object and I have some quantity that relates to the rotation. I want to see the rotation of object and the propagation of the graph of the quantity simultaneously. Maybe there is a way to somehow split the plot window in two, so in the left would be the rotation animation, and in the right would be the function animation.

I'm trying to plot the lines that are based on eigenvectors of the matrix. (Functions r1(t),r2(t), q(t) are defined earlier. I can upload file if necessary)

with(LinearAlgebra):
x1:=t->-r1(t)*cos(Pi/2-q(t)/2):
y1:=t->-r1(t)*sin(Pi/2-q(t)/2):
z1:=t->0:
x2:=t->r2(t)*cos(Pi/2-q(t)/2):
y2:=t->-r2(t)*sin(Pi/2-q(t)/2):
z2:=t->0:
Ixx:=t->m*(y1(t)^2+z1(t)^2)+m*(y2(t)^2+z2(t)^2):
Iyy:=t->m*(x1(t)^2+z1(t)^2)+m*(x2(t)^2+z2(t)^2):
Izz:=t->m*(x1(t)^2+y1(t)^2)+m*(x2(t)^2+y2(t)^2):
Ixy:=t->-m*x1(t)*y1(t)-m*x2(t)*y2(t):
Ixz:=t->-m*x1(t)*z1(t)-m*x2(t)*z2(t):
Iyz:=t->-m*y1(t)*z1(t)-m*y2(t)*z2(t):

InertiaTensor:=t-><<Ixx(t),Ixy(t),Ixz(t)>|<Ixy(t),Iyy(t),Iyz(t)>|<Ixz(t),Iyz(t),Izz(t)>>:

 Here I define the matrix as a function of time. 

EV:=t->Eigenvectors(InertiaTensor(t));
V1:=t->Column(Re(EV(t)[2]),1);
V2:=t->Column(Re(EV(t)[2]),2);

Producing two eigenvectors also as functions of time.

InertiaAxis1 := t->plot(x, V1(t)[2]*x/V1(t)[1], x = -2 .. 2);
InertiaAxis2 := t->plot(x, V2(t)[2]*x/V2(t)[1], x = -2 .. 2);

InertiaAxis1(1);

And here I've got an error:

Error, (in plot) unexpected options: [-HFloat(7.378655652881484e-6)*x, x = -2 .. 2]

I tried to set "datatype=float"-option in plot function, to evaluate the coefficient by eval-function, it wouldn't help. What does this error mean exactly? 

I am interested in the behaviour of a system of equations close to the origin- these equations are quite long, and there are a lot of them so i would like to have commands that i can use to assume products of variables are zero. 

here are the first two polynomials:


alpha*k[a1]*B[1]^2+(-alpha*k[a1]-alpha*k[a2])*B[2]*B[1]+2*alpha*k[a1]*B[1]*B[11]+alpha*k[a1]*B[12]*B[1]+2*alpha*k[a1]*B[1]*B[211]+alpha*k[a1]*B[221]*B[1]+2*alpha*k[a1]*B[1]*B[2211]+(-alpha*R[b]*k[a1]-k[d1])*B[1]+2*B[11]*k[d1]+B[12]*k[d2]+k[d1]*B[211]+k[d2]*B[221]

(-alpha*k[a1]-alpha*k[a2])*B[2]*B[1]+alpha*k[a2]*B[2]^2+2*alpha*k[a2]*B[2]*B[22]+alpha*B[2]*B[12]*k[a2]+alpha*k[a2]*B[2]*B[211]+2*alpha*k[a2]*B[2]*B[221]+2*alpha*k[a2]*B[2]*B[2211]+(-alpha*R[b]*k[a2]-k[d2])*B[2]+B[12]*k[d1]+2*B[22]*k[d2]+k[d1]*B[211]+k[d2]*B[221]

the varables are the terms with B and a subsript and everything else is a parameter.

My intuition was to use coeffs but I couldn't get anything helpful

You have three cakes, with diameters 15cm, 20cm and 25cm (same width). You want to share the cakes equally among your four customers. How do you do it?
What if you want the cakes sliced into the minimum total number of pieces?


The answer is to cut the cakes in half, but five pieces is the minimum.

What I want is a procedure for a more general case.

m cakes (different diameters) divided equally amongst n people. what is the minimum number of cuts or pieces to achieve this.

cuts.mw

I'm modeling the interaction between rotation and vibration in water molecule. I've come up with the solution functions, but I wanted to make some illustrative animations to fully understand what is going on. I made an animation (in the very end of the attached file) showing vibration of molecule and I want the trajectory of each (of two) particles to be traced after it, how could it be done? Also I want to have the movement of the angular momentum vector (vector with components [Jx=J*cos(varphi)*sin(theta), Jy=J*sin(varphi)*sin(theta), Jz=J*cos(theta)]) be animated simultaneously with the vibration of molecule (on the same plot). Is it hard to achieve?

File: ClassicalTrajectoriesH2X_morse.mw

 

Hello. I want to replicate the results of this table in Maple.

My "attempt" uses the inbuilt dictionary, but it will only find the words of length n, not the frequency of letters in each ....

word_length.mw

Let say I have an array

A := Array([[1], [2], [3]])
Normally if I would like to extend it I will write, eg:

Extend(A, [[4], [5]])

But because this is not 1D array Maple will rise an error. Is there a way to go over this limitation?

hi

in attached file below not answer found for dsolve?

please help me

thanks..

dsove.mw

restart

J := 1:

PDE := diff(T(z, t), z, z)-.2*(diff(T(z, t), t, t)) = int(.7703831837*(diff(T(z, tau), tau, tau))/(t-tau)^.3, tau = 0 .. t):

with(inttrans):

sol := laplace(PDE, t, s):

sol2 := subs([laplace(T(z, t), t, s) = U(z, t), T(z, 0) = sin(J*Pi*z), (D[2](T))(z, 0) = 0], sol)

diff(diff(U(z, t), z), z)-.2000000000*s^2*U(z, t)+.2000000000*s*sin(Pi*z) = -1.000000000*s^.3000000000*sin(Pi*z)+1.000000000*s^1.300000000*U(z, t)

(1)

sol3 := dsolve([sol2, (D[1](U))(0, t) = 0, (D[1](U))(1, t) = 0], U(z, t))

"sol3 := "

(2)

U(z, t) = invlaplace(rhs(sol3), s, t)

Error, invalid input: rhs expects 1 argument, but received 0

 

sol4 := simplify(subs(z = 0, rhs(sol3)))

Error, invalid input: rhs expects 1 argument, but received 0

 

``

``



Download dsove.mw

 

 

 

so I'm trying this:

restart;

sigma := 0.143e-18;

l_0 := 1.87;

l0 := 1.87;

roll := rand(0 .. 25.0);

f_gauss := proc (x) options operator, arrow; exp(-(1/2)*x^2/`&sigma;_x`^2)/sqrt(2*Pi*`&sigma;_x`^2) end proc;

f_norm := proc (dx) options operator, arrow; int(f_gauss(x), x = -(1/2)*dx .. (1/2)*dx) end proc;

sol_gauss := proc (mix) options operator, arrow; evalf(eval(-ln((int(f_gauss(x)*exp(-2*sigma*N2O*sqrt((1/4)*l_0^2-x^2)), x = -(1/2)*dx .. (1/2)*dx))/f_norm(dx))/(sigma*N2O), [N2O = 0.25e20*mix/100])) end proc;

for ii to 10 do

a := roll();

eval(sol_gauss(a), [dx = l_0, `&sigma;_x` = l0])

end do

Already searched and browsed multiple different threads and still cannot find a solution.

Apologizing the noob nature of this question.

 

 

In this code below, Why is the factor command not working?

f := a^2+x^2-2*ax;

a^2+x^2-2*ax

(1)

factor(f);

a^2+x^2-2*ax

(2)

expand((x-a)*(x-a));

a^2-2*a*x+x^2

(3)

``

NULL

NULL


Download factor_polynomial_2_multivariable.mwfactor_polynomial_2_multivariable.mw

 

hi...how i can pdsolve this equation numerically or analyticlly?

this equation is time-fractional  equation with generalized Cattaneo model

where

 

 is the fractional derivative operator considered in the
Caputo sense.

 

FRACTION.mw

restart

k := 1; -1; rho := 1; -1; h := 1; -1; alpha := 2-Upsilon; -1; 0 < Upsilon and Upsilon <= 1

0 < Upsilon and Upsilon <= 1

(1)

k*(diff(T(z, t), z, z)) = rho*(diff(T(z, t), [`$`(t, alpha)]))

diff(diff(T(z, t), z), z) = diff(T(z, t), [`$`(t, 2-Upsilon)])

(2)

k*(diff(T((1/2)*h, t), z)) = 1:

k*(diff(T((-h)*(1/2), t), z)) = 0:

T(z, 0) = 0

T(z, 0) = 0

(3)

NULL



Download FRACTION.mw

 

First 38 39 40 41 42 43 44 Last Page 40 of 73