Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

how I can gain a function that it is fitting in these data in x and y and z?

please see the following figure.

this curve is a 3D diagram in three coordinates x,y and z.

Thanks

PLOTfitting.xls

Let A be an nrxnr binary matrix. Suppose that the nxn binary matrix is obtained from the matrix A using the following code:

n := upperbound(A)[1]/r; 
B := Matrix(n, n, 0); 
for i to n do
 for j to n do 
  B[i, j] := SubMatrix(A, [(i-1)*r+1 .. i*r], [(j-1)*r+1 .. j*r])
 end do;
end do;

In other words, the matrix B is a decomposition of matrix A by rxr binary matrices. In the rest, we want to compute all determinants of the submatrices of B in module 2 as follows: 

u := 1; 
for k to n do
 P := choose(n, k); 
 for i to nops(P) do
  for j to nops(P) do
   W := []; 
   for ii in P[i] do 
    for jj in P[j] do
     W := [op(W), B[ii, jj]] 
    end do 
   end do;
   x := `mod`(Det(convert(blockmatrix(k, k, W), Matrix)), 2); 
  if x = 0 then 
    u := 0;
    i := nops(P)+1;
    j := nops(P)+1;
    k := n+1 
   end if 
  end do 
 end do; 
 unassign('i, j, ii, jj, W, x, P') 
end do

In the last step, we check that if the value of all sub determinants of B in module 2, are non zero, then we announce that the block matrix B is an MDS matrix

if u = 1 then print(MDS) else print(NoMDS) end if

Based on the above description I wrote the following procedure:

restart

with(LinearAlgebra); 
with(linalg, blockmatrix);
with(combinat)

MDS:=proc(A::Matrix,r::integer) 
   local n,B,i,j,u,ii,jj,k,P,W,x; 
   n:=upperbound(A)[1]/r;
   B:=Matrix(n,n,0); 
   for i to n do 
       for j to n do 
	        B[i,j]:=LinearAlgebra:-SubMatrix(A,[(i - 1)*r+1..i*r],[(j - 1)*r+1..j*r]) 
		end do 
	end do; 
	unassign('i,j');
	u:=1; 
	for k to n do
    	P:=combinat:-choose(n,k); 
		for i to nops(P) do
     		for j to nops(P) do
    			W:=[]; 
				for ii in P[i] do
    				for jj in P[j] do 
					    W:=[op(W),B[ii,jj]] 
					end do 
				end do; 
				x:=mod(Det(convert(linalg:-blockmatrix(k,k,W),Matrix)),2);
				if x=0 then 
				   u:=0;
				   i:=nops(P)+1;
				   j:=nops(P)+1;
				   k:=n+1
				end if 
			end do 
		end do; 
		unassign('i,j,ii,jj,W,x,P') 
	end do; 
	if u=1 then print(MDS) else print(NoMDS) end if 
end proc

 

My problem is that if A is a 64x64 binary matrix and also r=8, then the procedure MDS(A,8) takes 453 seconds to run in my computer (Maple 15 on windows 7 32bit with 4G RAM).

Is it possible to optimize the procedure such that MDS(A,8) takes less than 1 minutes.

Thanks for any help

Here we simulate the motion of a container with a flat bottom that can slide on a horizontal surface subject to dry friction (Coulomb friction).  Installed inside the container is an ordinary mass/spring/damper system where the mass slides horizontally.  We impart an initial velocity to the container.  That sets the mass into motion which then affects the container's motion.  Under certain conditions the container will undergo a stick-slip motion which is evident in the simulation.

This simulation very roughly approximates the motion of a partially filled bucket of water that slides on the floor when kicked.  The idea arose in a discussoin with Carl Love and mmcdara:
https://www.mapleprimes.com/posts/211677-Mass-Spring-Conveyor-Belt-And-Dry-Friction

In the animation below, the container is shown in dark color when it slides against the floor, and light color when it sticks.

Worksheet: slosh.mw

 

I wrote a code for the following sequence. But I have a problem. What are the good methods for defining recursive sequence?

THE CODE

restart;
#FIRST STEP: Lets find the recursive formula for 
d:=proc(m)
option remember;
d(1):=1;
if m>1 then return -sum(xi(i)*d(i-k+1),i=2..m) else 1 fi;
end proc:
#lets check
for i from 1 to 4 do
d(i);
end do; 

 

 

Secondly, I want to create a matrix as follows. I wrote the code. I think it is right.

restart:
m:=4:
DD:=Matrix(m,m):
#SECOND STEP: Lets find the matrix 
for i from 1 to m do 
p:=0:
for j from 1 to m do 
 
if i<=j then p:=p+1:
DD[i,j]:=d(p);
 fi: 
end do;
p:=1: 
end do:
DD;

 

 

 

 

I am working with lines in 2- and 3-space, defined parametrically. In 2-space, how would I go about using Maple to determine if the lines are identical or parallel. For example, if L1:=<2-4*t,5+6*t>, L2:=<-6-12t,17+18t>, L3:=<20t,-30t>, I would like a procedure that would be able to determine that L1 and L2 are identical lines, and that L1 and L3 are parallel lines. Similarly, it would be able to determine if lines in 3-space, are identical, parallel, or skew. 

 

I was looking into the geometry package, but I don't think it allows me to do this.

 

Thanks!

 Mathematical model for the temperature profiles of steel pipes quenched by water cooling rings

Hi

 Can anyone solve the given equations along with the boundary conditions analytically with Maple and draw the graphs ???????????

Hi everyone,

I'm trying to define indexed functions inside a for loop. However, after the loop is completed, the indexes of the functions are replaced by the índex of the control variable of the loop plus one. For example, I can make successfully the code:

for i from 1 to n do a[i] := b[i]; od;

However, if I try to define the functions a[i](u), through the code 

for i from 1 to n do a[i] := u-> b[i](u); od;

 I get wrong assignments. For example, Maple returns to me, for any i<=n, a[i](u) = b[n+1](u). 

I'm using Maple 2019 on Windows. Is this a bug? There is a right way to do these function assignments inside a loop?

Best regards for all,

R. S. Vieira.

In a new worksheet

gcd(a,b);
                               1

 

Why is maple computing this? It does it for a lot of functions and I never know if it is giving the correct results. a and be are not defined. I'd expect it to just return gcd(a,b).

 

I put it in formulas but I never know if it is simplifying before computing. I have no idea why. Maple never did this stuff until I upgraded.

 

 

maple save variables is greyed out  would anyone happen to know why this could be the case?

                       tmmp := [1, 10 q]
                            PS1 := 1
                          PS2 := 10 q
                           [1, 10 q]
                        tnmp := [8, 5 q]
                            QS1 := 8
                           QS2 := 5 q

 

gP, gQ, S1, S2, P1, P2, Q1, Q2

(q*x + 9*q + y)^33*(4*q*x + 6*q + y)^16/((x + 3)^48*(x + 10)), (q*x + 9*q + y)^33*(4*q*x + 6*q + y)^16/((x + 3)^48*(x + 10)), 8, 6*q, 1, q, 1, -10*q    

Normal(Eval(gP, {x = QS1, y = QS2})*Eval(gQ, {x = S1, y = -S2})*1/(Eval(gP, {x = PS1, y = PS2})*Eval(gQ, {x = S1, y = -S2}))) mod p;
Error, (in mod/Normal) invalid arguments or not implemented
 

Hello people in mapleprimes,

I could modify an expression e_n_1b to simpler e_n_1e as is in attached file.
Is there any other way to change e_n_1b into e_n_1e?

Dec_22.mw

Thank you in advance.

taro

 

P1 := 1;
Q1 := 1;
P2 := q;
Q2 := -10*q;
p - 11;
                            P1 := 1
                            Q1 := 1
                            P2 := q
                          Q2 := -10 q
                               0
NULL;
if Q2 = P2 mod p then
    return 42;
else
    return 0;
end if;
(P2 - Q2) mod p;
                               0

I don't know why but   (p=11)   here the code below does not return 42  and 

evalb(Q2 = P2 mod p);      returns
                             false   

I am trying to find 6 unknowns A, B, C, L, E, and F and have managed to write down a system of 6 equations involving these unknowns.  However, the equations are long and which I try to put the system together and solve with solve(sys, {A, B, C, E, F, L}) it says `[Length of output exceeds limit of 1000000]`.  Although the equations are long, I feel like something must be going wrong as the output cannot be that long.  The equations are:

C = (((h/(4*Pi*K)*H*e^(-k*h)*I/k - k*h^2/2 + H*A*e^(-k*h)*I/(K*k^2) - B*h - sqrt(Pi/2)*h/(2*Pi)*H*e^(-k*h)*I + sqrt(Pi/2)*K*k*h - sqrt(Pi/2)*H*A*e^(-k*h)*I/k + sqrt(Pi/2)*B*K - sqrt(Pi/2)*K*H*k*h^2*I/2) + sqrt(Pi/2)*H*A*e^(-k*h)*I/k) - sqrt(Pi/2)*H*F*h*K*I - sqrt(Pi/2)*H*A*e^(-k*h)*I/k + sqrt(Pi/2)*K*H*k*h^2/2*I) - sqrt(Pi/2)*H*F*h*K*I,

E = (((h/(4*Pi*K)*J*e^(-k*h)*I/k - k*h^2/2 + J*A*e^(-k*h)*I/(K*k^2) - L*h - sqrt(Pi/2)*h/(2*Pi)*J*e^(-k*h)*I + sqrt(Pi/2)*K*k*h - sqrt(Pi/2)*J*A*e^(-k*h)*I/k + sqrt(Pi/2)*L*K - sqrt(Pi/2)*K*J*k*h^2*I/2) + sqrt(Pi/2)*J*A*e^(-k*h)*I/k) - sqrt(Pi/2)*J*F*h*K*I - sqrt(Pi/2)*J*A*e^(-k*h)*I/k + sqrt(Pi/2)*K*J*k*h^2/2*I) - sqrt(Pi/2)*J*F*h*K*I

0 = -H*(k*z^2/2 - H*A*e^(-k*z)*I/(K*k^2) + B*z + C)*I - J*(k*z^2/2 - J*A*e^(-k*z)*I/(K*k^2) + L*z + E)*I + k*z + A*e^(-k*z)/K + F

0 = ((-H*A*e^(-k*z)*I - H*I*(-2*K*(-H*k*z^2*I/2 - H^2*A*e^(-k*z)/(K*k^2) - H*B*z*I - H*C*I)) - J*I*(-2*K*1/2*(((-J*k*z^2*I/2 - J*H*A*e^(-k*z)/(K*k^2) - J*B*z*I - J*C*I - H*k*z^2*I/2) - J*H*A*e^(-k*z)/(K*k^2)) - H*L*z*I - i*H*E)) - K*k) + H*A*e^(-k*z)*I) + K*H*z*k*I + H*A*e^(-k*z)*I + K*H*F*I

0 = ((-J*A*e^(-k*z)*I - H*(((K*J*k*z^2*I/2 + J*H*A*e^(-k*z)/k^2 + K*J*B*z*I + k*h*K*z^2*I/2) + J*H*A*e^(-k*z)/k^2) + K*H*L*z*I + K*H*E*I)*I - J*I*(-2*K*(-J*k*z^2*I/2 - J^2*A*e^(-k*z)/(K*k^2) - J*L*z*I - J*E*I)) - K*k) + J*A*e^(-k*z)*I) + K*J*z*k*I + J*A*e^(-k*z)*I + K*J*F*I

0 = (-k*A*e^(-k*z) - H*I*(-2*K*1/2*(((k*z + H*A*e^(-k*z)*I/(K*k) + B - H*k*z^2*I/2) + H*A*e^(-k*z)*I/(K*k)) - H*F*z*I - H*G*I)) - J*I*(-2*K*1/2*(((k*z + J*A*e^(-k*z)*I/(K*k) + L - J*k*z^2*I/2) + J*A*e^(-k*z)*I/(K*k)) - J*F*z*I - J*G*I)) - 2*K*k) + 2*k*A*e^(-k*z)

where h takes a constant value, H and J are constants, k is the square root of H^2 + J^2, I is the imaginary unit, and z also takes some value as a parameter.

I'm new to maple and numerical analysis in general and I have a problem, I'm not sure how to assign variables into a function with the submethod rk4, the equation is very simple:

dy/dx=10(y-a)/b, where a and b serve as functions of x, and are given different values with the change of x.How do I assign these values?

Thanks.

 

Error, invalid subscript selector
WeilP:
   7       PS1 := temp[1];
============================================

WeilP:=proc(m, P1, P2, Q1, Q2, f, p) 
local S1, S2, gP, gQ, temp, PS1, PS2, QS1, QS2;
    if [P1,P2] = [Q1, Q2] mod p then
        return 1 ;
        else  
            # [S1, S2] := EAdd( f, x, P1, P2, Q1, Q2); 
            temp := EAdd( f, x, p, P1, P2, Q1, Q2);
            S1:= temp[1];
            S2:=temp[2];
        temp := EAdd( f, x, p, P1, P2, S1, -S2);   #represents P-S  
            PS1:= temp[1];
            PS2:=temp[2];
        temp := EAdd( f, x, p, Q1, Q2, S1, S2);    #Q+S
        QS1:=temp[1];
        QS2:=temp[2];
    #        gP:=Weil( m, P1,P2, f, p ); 
    #        gQ:=Weil( m, Q1,Q2, f, p );
    return 0
#    return Normal(  ( Eval(gP, { x=QS1, y=QS2 } ) * Eval(gQ, {x=S1, y= -S2} ) )  / ( Eval(gP, { x=PS1, y=PS2 } ) * Eval(gQ, {x=S1, y= -S2} ) )   )  mod p;    # ( f_P(Q+S) f_Q(-S)  ) / ( f_Q(P-S) f_P(S)  )
    end if ;

Here EAdd is elliptic curve addition   

I tried evaluating the code outside the code edit region and it seemed to work okay  temp ends up being the vector 

p.s. how do I get maple to save the values of a procedure rather than deleting them? 

how do I view variable values during debugging? 

 

First 8 9 10 11 12 13 14 Last Page 10 of 1630