Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

hi

i want to solve a function which contains below series, but I can't.

SS:=sum(F[k-m]*sum(F[m-L]*sum(F[L-j]*F[j],j=0..L),L=0..m),m=0..k);

or

SS:sum(F[k-m],m=0..k)*sum(F[m-L],L=0..m)*sum(F[L-j]*F[j],j=0..L);

eq:=(-1/(k+1))*(F[k]+0.5*sum((k-m+1)*F[k-m+1]*F[m],m=0..k)+0.05*SS);

n:=8;
for k from 0 to n do
F[k+1]:=solve(eq);
end do;

with the first SS I have gotten a wrong nswer and with the second SS this error has been seen:

Error, (in solve) cannot solve expressions with sum(F[L-j]*F[j], j = 0 .. L) for F[j]

is there qny one hepl me please.

thanks

Why Maple18 cannot solve the system p=(w^2+v*w)/(1-2*u-w) & q=u+w & r=w symbolically by using command

solve({p=(w^2+v*w)/(1-2*u-w),q=u+w,r=w},{u,v,w})? It responds with an error message.

int(ln(x)^n,x)  just returns the integral

Mathematica gives

What other interventions are required to get Maple to produce an answer?

 

I have the following expression

((4*(N-i+2))*((N-i-2)*(-(N-i-4)*(N+i+2)*(N+2)*(N+4)+N^4+4*N^3+4*N^2+16*N-40)-(4*(N-1))*(2*N+3)*(N+5))+(8*(N+5))*(N^2+8*N+6))/((N-i+1)*(N-i+3)*((N-i-2)*(i+3)*(N+2)*(N+4)-(8*(N+5))*(N-1)))

The parameters i and N are nonnegative integers and i is less than or equal to N. The purpose is to make it as short as possible. Based on my experience, it could be expressed as a small binomial expression or as a sum of two or three binomials. However, by Maple commands the conversion does not give me binomials or any smaller expression.

Is there any way for the conversion to binomials or any other conversion to shorten the expression?

I appreciate any help.

A question was raised recently on Stewart Gough platforms.  I decided to tidy up some old code to show platform position and leg lengths for any given displacement.
 

restart

``

Hexapod Setup Data

 

RotZ := proc (delta) options operator, arrow; Matrix(1 .. 3, 1 .. 3, {(1, 1) = cos(delta), (1, 2) = -sin(delta), (1, 3) = 0, (2, 1) = sin(delta), (2, 2) = cos(delta), (2, 3) = 0, (3, 1) = 0, (3, 2) = 0, (3, 3) = 1}, datatype = anything, storage = rectangular, order = Fortran_order, subtype = Matrix) end proc

a[1] := Vector(3, [.5, 3.0, 0]); a[2] := evalf(RotZ(20*((1/180)*Pi)).a[1]); a[3] := evalf(RotZ(100*((1/180)*Pi)).a[2]); a[4] := evalf(RotZ(20*((1/180)*Pi)).a[3]); a[5] := evalf(RotZ(100*((1/180)*Pi)).a[4]); a[6] := evalf(RotZ(20*((1/180)*Pi)).a[5])

b[1] := evalf(.7*RotZ(-40*((1/180)*Pi)).a[1]); b[2] := evalf(RotZ(100*Pi*(1/180)).b[1]); b[3] := evalf(RotZ(20*Pi*(1/180)).b[2]); b[4] := evalf(RotZ(100*Pi*(1/180)).b[3]); b[5] := evalf(RotZ(20*Pi*(1/180)).b[4]); b[6] := evalf(RotZ(100*Pi*(1/180)).b[5])

Zeroposn := Vector(3, [0, 0, 3])

Tx := Vector(3, [1, 0, 0]); Ty := Vector(3, [0, 1, 0]); Tz := Vector(3, [0, 0, 1])

``

``

NULL

Procedures

 

PlatPosn := proc (x := 0, y := 0, z := 0, alpha := 0, beta := 0, delta := 0) local i, v, Rot, L1, L2, L3, L4, L5, L6; global txn, tyn, tzn, ctrp; description "Calculates the platform position in the Global Coordinates, Unit normals and Leg Lengths"; v := Vector(3, [x, y, z]); ctrp := Zeroposn+v; Rot := Matrix(1 .. 3, 1 .. 3, {(1, 1) = cos(delta)*cos(beta), (1, 2) = -sin(delta)*cos(alpha)+cos(delta)*sin(beta)*sin(alpha), (1, 3) = sin(delta)*sin(alpha)+cos(delta)*sin(beta)*cos(alpha), (2, 1) = sin(delta)*cos(beta), (2, 2) = cos(delta)*cos(alpha)+sin(delta)*sin(beta)*sin(alpha), (2, 3) = -cos(delta)*sin(alpha)+sin(delta)*sin(beta)*cos(alpha), (3, 1) = -sin(beta), (3, 2) = cos(beta)*sin(alpha), (3, 3) = cos(beta)*cos(alpha)}, datatype = anything, storage = rectangular, order = Fortran_order, subtype = Matrix); for i to 6 do bn || i := Zeroposn+v+Rot.b[i] end do; txn := Rot.Tx; tyn := Rot.Ty; tzn := Rot.Tz; print(" Platform centre Global", ctrp); print(" Platform corner Co-ords Global", bn1, bn2, bn3, bn4, bn5, bn6); print("Platform Triad Vectors  ", "X green ", txn, "Y blue", tyn, "Z red ", tzn); L1 := sqrt((bn1-a[1])^%T.(bn1-a[1])); L2 := sqrt((bn2-a[2])^%T.(bn2-a[2])); L3 := sqrt((bn3-a[3])^%T.(bn3-a[3])); L4 := sqrt((bn4-a[4])^%T.(bn4-a[4])); L5 := sqrt((bn5-a[5])^%T.(bn5-a[5])); L6 := sqrt((bn6-a[6])^%T.(bn6-a[6])); print("Leg Lengths"); print("L1= ", L1); print("L2= ", L2); print("L3= ", L3); print("L4= ", L4); print("L5= ", L5); print("L6= ", L6) end proc

``

PlatPlot := proc () local Base, Platformdisplacement, picL1, picL2, picL3, picL4, picL5, picL6; global tx0, ty0, tz0; description "Displays the Hexapod"; Base := plots:-polygonplot3d(Matrix([a[1], a[2], a[3], a[4], a[5], a[6]], datatype = float), color = black, transparency = .5); Platformdisplacement := plots:-polygonplot3d(Matrix([seq(bn || i, i = 1 .. 6)]), color = cyan, transparency = .5); picL1 := plots:-arrow(a[1], bn || 1-a[1], colour = green); picL2 := plots:-arrow(a[2], bn || 2-a[2], colour = blue); picL3 := plots:-arrow(a[3], bn || 3-a[3], colour = blue); picL4 := plots:-arrow(a[4], bn || 4-a[4], colour = blue); picL5 := plots:-arrow(a[5], bn || 5-a[5], colour = blue); picL6 := plots:-arrow(a[6], bn || 6-a[6], colour = orange); tx0 := plots:-arrow(ctrp, txn, colour = green); ty0 := plots:-arrow(ctrp, tyn, colour = blue); tz0 := plots:-arrow(ctrp, tzn, colour = red); plots:-display(Base, picL1, picL2, picL3, picL4, picL5, picL6, Platformdisplacement, tx0, ty0, tz0, axes = box, labels = [X, Y, Z], scaling = constrained) end proc

``

NULL

``

``

PlatPosn()

"L6= ", 3.586394355

(1)

PlatPlot()

 

NULL

PlatPosn(.52, -.89, .7, .2, .67, .3)

"L6= ", 3.055217994

(2)

PlatPlot()

 

NULL

NULL

 

NULL

print('tzn' = LinearAlgebra:-CrossProduct(txn, tyn), `= `, tzn)

tzn = Vector[column](%id = 18446744074564617750), `= `, Vector[column](%id = 18446744074328082542)

(3)

``

``NULL

NULL

Rotation Matrices

NULL

``

 

RotZ := Matrix(3, 3, {(1, 1) = cos(delta), (1, 2) = -sin(delta), (1, 3) = 0, (2, 1) = sin(delta), (2, 2) = cos(delta), (2, 3) = 0, (3, 1) = 0, (3, 2) = 0, (3, 3) = 1})

RotY := Matrix(3, 3, {(1, 1) = cos(beta), (1, 2) = 0, (1, 3) = sin(beta), (2, 1) = 0, (2, 2) = 1, (2, 3) = 0, (3, 1) = -sin(beta), (3, 2) = 0, (3, 3) = cos(beta)})

RotX := Matrix(3, 3, {(1, 1) = 1, (1, 2) = 0, (1, 3) = 0, (2, 1) = 0, (2, 2) = cos(alpha), (2, 3) = -sin(alpha), (3, 1) = 0, (3, 2) = sin(alpha), (3, 3) = cos(alpha)})

NULL

ROT := RotZ.RotY.RotX

Matrix(%id = 18446744074564619310)

(4)

``

``

``


 

Download Reverse_Kinematics_Stewart_Gough_Platform.mw

With this application the components of the acceleration can be calculated. The components of the acceleration in scalar and vector of the tangent and the normal. In addition to the curvilinear kinetics in polar coordinates. It can be used in different engineers, especially mechanics, civilians and more.

In Spanish.

Kinematics_Curvilinear v18.mw

Kinematics_Curvilinear_updated_v2017.mw

Cinemática_en_Coordenadas_Polares_Cilindricas.mw

Kinematics_Curvilinear_updated_v2018.mw

Cinemática_de_una_partícula_nueva_sintaxis.mw

Lenin Araujo Castillo

Ambassador of Maple

 

 

I'm having a trouble with this trivial code in Maple. The output is, well, ... stupid ! I'm askingMaple to do a vectorial sum and substraction of 5 cross products, and what I get is silly : a sum of vectors, but it doesn't give the total vector ! What the hell !?

with(linalg):
with(DEtools):

ly := 9.4607*10^15:
M0 := 1.99*10^30:

M1 := 2.20*M0:
M2 := 2.00*M0:
M3 := 1.50*M0:
M4 := 3.00*M0:

r1 := [-3, 3, 0]*ly:
r2 := [0, -2, 0]*ly:
r3 := [1, 2, 0]*ly:
r4 := [6, 4, 0]*ly:

v1 := [25, 15, 0]*10^3:
v2 := [20, -20, 0]*10^3:
v3 := [-5, -25, 0]*10^3:
v4 := [15, 0, 0]*10^3:

Mtot := M1 + M2 + M3 + M4:

rcm := (M1*r1 + M2*r2 + M3*r3 + M4*r4)/Mtot:
vcm := (M1*v1 + M2*v2 + M3*v3 + M4*v4)/Mtot:

Ltot := crossprod(r1, M1*v1) + crossprod(r2, M2*v2) + crossprod(r3, M3*v3) + crossprod(r4, M4*v4) - crossprod(rcm, Mtot*vcm);

I have done other codes with vectors like these, using the crossprod command, and they are all working great.  So I don't understand what is going on here.  I'm using Maple 13.

I'm not a strong user of Maple, so I may have done a simple mistake somewhere, but I really don't see what and where. So what is wrong with this Maple code ?

Hi, I'm trying to display a rotation matrix, but due to the interaction with the explore controls and the working numerical precision for the controls / trig terms, I'm getting displays like

1.0  0.0

0.0  -2*10^-10

What I'd like is for the -2*10^-10 to be displayed in decimal format (by default) and therefore would be displayed as 0.0.

So is there a way to control the display formatting of:

x := cos(Pi/(2.0));

so that it displays 0.0 instead of -2*10^-10?

I realise that Increasing the Digits increases the precision, but this simply increases the magnitude of the exponent and I can't simply use x := cos(Pi/(2)), because of the interaction with the explore controls.

Thanks.

I have a code that outputs a long string of mathematics after various string replacements which I save into a file in the format of a Python function. Here is the code (for a 1 x 1 matrix):

restart:
Size:=1:
## This is the matrix which is generated in a string format
mat1:="Matrix(1, 1, [[-1/2*(A^8*hh*m3+6*A^7*B*hh*m3-2*A^7*hh*m3*z3+16*A^6*B^2*hh*m3-14*A^6*B]])":
## Open up file
filename2:=fopen(cat("Matrix", Size, "x", Size,"HH.py"),WRITE,TEXT): 

## Format file
fprintf(filename2,"import numpy as np\ndef myfuncHH(A,B):\n    z3 = 2\n    m3 = float('inf')\n    Mat_size = %a", Size): 
fprintf(filename2,"\n    arr = np.array([%a",mat1): 
fprintf(filename2,"],dtype=np.float64)"): 
fprintf(filename2,"\n    shape = ( Mat_size, Mat_size )\n    HH=arr.reshape( shape )\n    return HH"):
fclose(filename2):


This generates almost the exact output that is required:

 

import numpy as np
def myfuncHH(A,B):
    z3 = 2
    m3 = float('inf')
    Mat_size = 1
    arr = np.array(["Matrix(1, 1, [[-1/2*(A^8*hh*m3+6*A^7*B*hh*m3-2*A^7*hh*m3*z3+16*A^6*B^2*hh*m3-14*A^6*B]])"],dtype=np.float64)
    shape = ( Mat_size, Mat_size )
    HH=arr.reshape( shape )
    return HH

The part I want to remove is the "Matrix(1, 1, [   "Maths in here"   ])"]

 

I can use stringtools to tidy up most of this, but I am having trouble getting rid of the quotes of the string itself. I have tried escaping them and that does nothing. Is there a simple way to do this or will a regex have to be made?

 

- Yeti

Suppose Delta:=f(a,b)x^2+g(a,b)x+h(a,b), where f,g,h are functions of a and b. Is there a way to find conditions on a,b such that Delta is positive?

i want to solve this DAE system usin Dsolve , but i obtain this error message (cannot evaluate the solution past the initial point, problem may be complex, initially singular or improperly set up), if anyone can help me ,

I am trying to export a number of matrices from maple to matlab with meaningful names.

For instance with this code:
legend := ["ini_que", "ini_que_A", "ini_que_B"];
ExportMatrix("test.mat", [r_mean_Q_ini, r_mean_Q_ini_A, r_mean_Q_ini_B], arraynames = legend, target = MATLAB);

The problem is when I open the resulting file in either python or matlab, I only get  the matrices with names "ini_que" and "ini_que_". My guess is that  long strings in arraynames are truncated and only one of the options are kept.

Is this the case and can the maximum length of the name of the matrix be changed? Or is the only way to use shorter but less readable names?

How to write procedure to find factorial n? Induction to be used.

 

I just quickly checked Nasser Abassi 12000.org to see if he's updated it for Maple 2017.  In some areas he has.  I thought I would check one of the integrals that failed for Maple in his tests.  In the Computer Algegbra independent integration tests Maple failed to solve 11.68% of the 3407 integrals in his test while Mathematica only failed 0.88%.  For Maple that seemed quite high, so it is perhaps his method of solving for Maple and perhaps he's more adept with Mathematica. 

Here is one of the failed integrals and the single line code he used to solve it.

int((5*x^2+3*(x+exp(x))^(1/3)+exp(x)*(2*x^2+3*x))/x/(x+exp(x))^(1/3),x) # of course because it failed it just spits back the integral.

Can maple solve it?

The answer is supposed to be

I am interested to know difference between eval and evalf. Will evaluating a function at a point using these commands gives the same answer or not. I mean will there will be any exception or not. How can I evaluate the value of  a series using eval instead of evalf without the problem of memory running out (No comprimise in accuracy).

First 958 959 960 961 962 963 964 Last Page 960 of 2224