MaplePrimes Questions

Hi Everybody,

I installed the Maple Toolbox for matlab and tried to run my old code.  For some reason, maple('restart') will cause Matlab to lock up.  Any ideas?

Windows 7 64-bit.  Matlab 2012b 32-bit, Maple 18 32-bit

Hi Mapleprimers,

I'm using CodeGeneration to convert a procedure I obtained with unapply() into a Matlab function.  I'm having problems getting the outputting function to run correctly in Matlab.  I'm going to dynamically generating equations, so directly editing the Matlab code won't work here.  I'm having problems getting any output in Matlab.  Here is the code I'm working on:  Series_addGear_codegen.mw

Ideally I would like output in a matrix.  I've tried putting the unapplied procedure in another procedure, but the CodeGeneration doesn't work.

This is the maple output from the function:

unapp(1,2,3,4,5);
{BAT_A = -2.267032891, BAT_V = 271, EM2_A = .4615464218, EM2_P = 125.0790803, EM2_T = -1, EM2_V = 271, EM2_W = 2, GBa_T = 12, GBa_W = 5/3, GBb_T = -4, GBb_W = 5, GEN_A = 1.805486469, GEN_P = 489.2868330, GEN_T = -12, GEN_V = 271, GEN_W = 5/3, ICE_mdot_g = 20}

Since I'll know the order of variables, I want the Matlab function to output:

[-2.267032891,  271,  .4615464218,  125.0790803,  -1, ...]

This is the output after putting the Matlab function in Matlab:

>> unapp(1, 1, 1, 1, 1)
Undefined function or variable 'BAT_A'.

Error in unapp (line 39)
unappreturn = unique([BAT_A == -t35 / 0.271e3 - t73 / 0.271e3 BAT_V == 271 EM2_A == t35 /
0.271e3 EM2_P == t35 EM2_T == -FD_T EM2_V == 271 EM2_W == FD_W GBa_T == t44 GBa_W == t41 GBb_T
== -ICE_T GB

This is the Matlab code that is generated by Maple 18:

MCode:=CodeGeneration[Matlab](unapp, declare = [FD_T::float, FD_W::float, GB_R::float, ICE_T::float, ICE_W::float],defaulttype=float,optimize,defaulttype = numeric);
Warning, could not preprocess. Found `abs` or similar in the 'While'/'For' conditions.
Warning, procedure/module options ignored
function unappreturn = unapp(FD_T, FD_W, GB_R, ICE_T, ICE_W)
t2 = 0.1e1 * FD_T * FD_W;
t5 = abs(FD_W);
t7 = abs(FD_T);
t9 = t5 ^ 2;
t13 = t7 ^ 2;
t15 = t9 * t5;
t21 = t13 * t7;
t23 = t9 ^ 2;
t31 = t13 ^ 2;
t33 = 0.1483000000e3 - 0.4267000000e1 * t5 - 0.1277000000e2 * t7 + 0.3640000000e-1 * t9 - 0.1160000000e1 * t5 * t7 + 0.2580000000e0 * t13 - 0.1181000000e-3 * t15 + 0.5994000000e-3 * t9 * t7 - 0.1171000000e-3 * t5 * t13 - 0.1739000000e-2 * t21 + 0.1245000000e-6 * t23 - 0.1200000000e-5 * t15 * t7 + 0.1584000000e-5 * t9 * t13 - 0.4383000000e-6 * t5 * t21 + 0.2947000000e-5 * t31;
if (-t2 == 0.0e0)
t35 = 0.0e0;
elseif (-t2 < 0.0e0)
t35 = t33;
else
t35 = -t33;
end
t36 = ICE_T * ICE_W;
t37 = 0.1e1 * t36;
t41 = ICE_W / GB_R;
t42 = abs(t41);
t44 = ICE_T * GB_R;
t45 = abs(t44);
t47 = t42 ^ 2;
t51 = t45 ^ 2;
t53 = t47 * t42;
t59 = t51 * t45;
t61 = t47 ^ 2;
t69 = t51 ^ 2;
t71 = 0.5280000000e-11 - 0.3849000000e-13 * t42 + 0.7190000000e2 * t45 + 0.1168000000e-15 * t47 - 0.1296000000e1 * t42 * t45 - 0.2489000000e1 * t51 - 0.1451000000e-18 * t53 - 0.1326000000e-3 * t47 * t45 + 0.8141000000e-2 * t42 * t51 + 0.4539000000e-2 * t59 + 0.6325000000e-22 * t61 + 0.2091000000e-6 * t53 * t45 - 0.3455000000e-5 * t47 * t51 - 0.2499000000e-4 * t42 * t59 + 0.5321000000e-4 * t69;
if (-t37 == 0.0e0)
t73 = 0.0e0;
elseif (-t37 < 0.0e0)
t73 = t71;
else
t73 = -t71;
end
unappreturn = unique([BAT_A == -t35 / 0.271e3 - t73 / 0.271e3 BAT_V == 271 EM2_A == t35 / 0.271e3 EM2_P == t35 EM2_T == -FD_T EM2_V == 271 EM2_W == FD_W GBa_T == t44 GBa_W == t41 GBb_T == -ICE_T GBb_W == ICE_W GEN_A == t73 / 0.271e3 GEN_P == t73 GEN_T == -t44 GEN_V == 271 GEN_W == t41 ICE_mdot_g == t36]);

 

 

Consider the following code:

with(LinearAlgebra):
with(Physics):
Setup(anticommutativeprefix = psi):
psiFermi := Vector(2,symbol = psi):
psiBose  := Vector(2,symbol = phi):
A := Matrix([[0,1],[1,0]]):
Transpose(psiFermi) . A;
Transpose(psiBose ) . A;

It produces the following output:

Why is the first line, for anticommuting components, not evaluated to the same form as the second line, for commuting components? The actual choice of the matrix A seems immaterial; the odd behaviour is present even if A is chosen to be the identity matrix!

In comparison, the 'contracted' (scalarly) expressions

Transpose(psiFermi) . A . psiFermi,
Transpose(psiBose ) . A . psiBose;

produce the following completely sensible output:

I am not able to simplify my equation, any help would be appreciated ! I want the V[0]^2/r[0]  term to be eliminated

restart:with(Student[VectorCalculus]): 

R1:=rho(diff(u(r,theta,z,t)*(V[0])^2/r[0],t)+ u(r,theta,z,t)*V[0](diff(u(r,theta,z,t)*V[0]/r[0],r))+v(r,theta,z,t)*V[0]/(r*r[0])*diff(u(r,theta,z,t)*V[0],theta)+w(r,theta,z,t)*V[0]*diff(u(r,theta,z,t)*V[0]/r[0],z)-(v(r,theta,z,t)*V[0])^2/(r*r[0])) +diff(p(r,theta,z,t)*rho*V[0]^2/r[0],r); simplify(R1*r[0]/V[0]^2);

rho((diff(u(r, theta, z, t), t))*V[0]^2/r[0]+u(r, theta, z, t)*V[0]((diff(u(r, theta, z, t), r))*V[0]/r[0])+v(r, theta, z, t)*V[0]^2*(diff(u(r, theta, z, t), theta))/(r*r[0])+w(r, theta, z, t)*V[0]^2*(diff(u(r, theta, z, t), z))/r[0]-v(r, theta, z, t)^2*V[0]^2/(r*r[0]))+(diff(p(r, theta, z, t), r))*rho*V[0]^2/r[0]

 

((diff(p(r, theta, z, t), r))*rho*V[0]^2+rho((w(r, theta, z, t)*V[0]^2*(diff(u(r, theta, z, t), z))*r+(diff(u(r, theta, z, t), t))*V[0]^2*r+u(r, theta, z, t)*V[0]((diff(u(r, theta, z, t), r))*V[0]/r[0])*r*r[0]-v(r, theta, z, t)^2*V[0]^2+v(r, theta, z, t)*V[0]^2*(diff(u(r, theta, z, t), theta)))/(r*r[0]))*r[0])/V[0]^2

(1)

 

Download 1.mw

 

 

Hello,

I'm quite new to Maple and I have a serious problem when I'm trying to solve this system of equations for (a,b,p,v,u,g):

1) alpha[1]= v a u (1- b)
2) alpha[2]= v a ub
3) alpha[3]= v (1-a)=v-va
4) alpha[11]= 1/(2) auv (-1+b) (-b u p+b a u p+b g+p u-u p a) 
5) alpha[22]= 1/(2) a u v b (-b u p+b a u p+b g-g)
6) alpha[33]= 1/(2)(a- 1)apv
7) alpha[12]= -a u v b(pu-pua-g - bup +baup +bg)
8) alpha[13]= (a-1) (b-1)ap vu
9) alpha[23]= (1-a) a p v ub

I tried this command:

solve({v*(1-a) = alpha[3], a*u*v*b = alpha[2], v*a*u*(1-b) = alpha[1], (1/2*(-1+a))*a*p*v = alpha[33], (-1+a)*(-1+b)*a*p*v*u = alpha[13], (1-a)*a*p*v*u*b = alpha[23], (1/2)*a*u*v*b*(-b*u*p+b*a*u*p+b*g-g) = alpha[22], -a*u*v*b*(p*u-u*p*a-g-b*u*p+b*a*u*p+b*g) = alpha[12], (1/2)*a*u*v*(-1+b)*(-b*u*p+b*a*u*p+b*g+p*u-u*p*a) = alpha[11]}, {a, b, g, p, u, v}, 'parametric' = 'full', 'parameters' = {alpha[1], alpha[2], alpha[3], alpha[11], alpha[12], alpha[13], alpha[22], alpha[23], alpha[33]})

 but the Maple output is [ ]. I can find a solution manually but I don't understand why I cannot do it with Maple. It's very important that I find a solution as I have a much more complicated system to solve in a similar manner.

Thank you very much for your help!!

Elena

 

I have a long and complicated expression (say Eq1). I have to solve the two equations (obtained by taking real and imaginary parts of Eq1) for two unknowns. Normally it take around a day on my i5 (3.1 GHz, 4 cores), 8gb ram desktop. I looked into posts related to parallel programming but couldn't get much to reduce the computation time. Is there a way to reduce the computation time ?
Many thanks in advance.

Here's an example compound inequality I'm working on.

Working it out manually.... 

Compound Inequality
4477.25 <= 4477.25+.25*(t-32450) <= 16042.25;

Distribute the coefficient
4477.25 <= 4477.25+.25*t - 8112.50 <= 16042.25;

Combine like terms
4477.25 <= -3635.25+.25*t <= 16042.25;

Add 3635.25 to all sides
8112.50 <= .25*t <= 19677.50;

Divide all sides by .25
32450 <= t <= 78710;

 

How can I ask Maple to simplify this compound inequality? Obviously this is not the correct syntax, It seems Maple doesn't understand what I want it to do.

4477.25 <= 4477.25 + .25 * (t-32450) <= 16042.25;

                       0.00 <= 0.25 t - 8112.50 and 0.25 t <= 19677.50                (112)

 

Also is there a way to ask Maple to only perform one step? In the above example, is it possible to ask Maple to "Distribute the .25", then show the result, next ask it to combine like terms, etc?

I want to generate random numbers following the normal distribution within a fixed interval.

 

For example, I want generate 10 random numbers in the interval [2903.5-5, 2903.5+5]. These random numbers should follow the normal distribution with mean 2903.5 and  standard deviation \sigma=3.

 

How can I do this?

 

Thanks.

Hi,

I need to solve systems of numerical equations. I encountered a problem, where one of the parameters (tau[p3]) become FREE, see Maple worksheet attached.

That was clearly not expected.

I spent about 40 mintues to inspect what the problem is, eventually, I find that fsolve works perfectly.

Though fsolve would be the "first" choice for solving floating point problems. I really dont see why the simple "solve" syntax can not work. It is acting strange. And why is *tau[p3]*  FREE, not the others?

 

Could this be a bug? Or maybe is just WRONG to use solve?

 

Casper

solve-fsolve.mw

 

 

Can anyone tell me how to scroll the context menus in Maple 17?

I'm using the DynamicSystems pkg and would like to use its context menu but it's cut off at bottom of screen.

When I right click on an expression in a Maple document, I get the context menu,but it goes off the screen at the bottom, and I can't find any way to scroll down to see what is cut off.   I tried the Zoom feature on the menu to make things smaller, and it made the print in my document smaller, but the context menu is the same size, and still gets cut off.

Any help appreciated.

hello

1-DirectSearch results is like this:

[0.,[0.], [x = -.400000000000000], 11]


x=.4 is the answer of SolveEquations (code is in the second question) please interpret other terms.

2-how can i save only x?

this is my code:

restart;

a := Matrix([1, 2, 3, 4, 5]);

for k from 1 by 1 to 5 do

z = DirectSearch:-SolveEquations(a(1, k)*x+2 = 0)

end do

 

I'm having some trouble maybe someone can point out my error please. I'm using the Maple 18 worksheet to try some basic linear equations. The trouble is in the last step.

 

1.) I start with 2 ordered pairs (2, 14) and (14,18)

Then I put in my formula to discover the slope. I confirm it looks correct in the Variables window.

m := (y2-y1)/(x2-x1);

 

2.)  Next I input the values for my ordered pairs. I also confirm thru the Variables window.

x1 := 2;

y1 := 14;

x2 := 3;

y2 := 18;

 

3.) Now I can type m and expect to get an answer to what my slope is.

m;

4.) Now I want Slope/Intercept form of y=mx+b. When I put in the formula y-y1=m(x-x1) i get a strange result

 

When I execute this formula, the result is y-14=4. (or thru context menu I tell it to solve for y, then I get y=18)

y-y1=m(x-x1) 

When I manually input the values, the output is y-14=4x-8 (or thru context menu I tell it to solve for y, then I get y=4x+6)

y-14 = 4*(x-2)

 

 

 

Why is my equation (y-y1=m(x-x1)) not executing properly?

Hey everyone,

New here but I'm a bit stuck. Ive looked around in list tools as well as tried but I havent had any luck.

Suppose I have a list defined as FirstList:=[A,B,C,D,E,F]. Now I want to create (and label) all possible
lists from FirstList which contain 4 elements which dont have an element repeated within the same list
In this example, there are 15 lists in total i.e.

Sublist[1]:=[A,B,C,D]:
Sublist[2]:=[A,B,C,E]:
Sublist[3]:=[A,B,C,F]:
Sublist[4]:=[A,C,D,E]:

..etc

Is there a simple way to do this???

Any help is appreciated!

This is one is for Edgardo: In the "mini course", there is a command "PlotExpression" used that does not seem to do anything, at least for me. This is in a fresh Maple 18.01 installation on Linux with the latest version of Physics pulled off the Web today.

I cannot find any reference to PlotExpression in the Maple Help files, so where is this thing supposed to be defined? I >am< running a .mapleinit file of my own, configuring some of the plots[setoptions] parameters to my liking, but it should not clobber anything from the system mapleinit.

Another person managed to get the definition of PlotExpression and send it to me. From that I can see that the underlying plots:-plotcompare command seems to work, at least in part.

???

USPAS

 

> local `+`;
Error, unable to parse

 

meet difficulty running script in maple 12

restart;  local `+`;  `+`:=proc(a,b) :-`+`(a^`~2`,b^`~2`) end proc;

First 1415 1416 1417 1418 1419 1420 1421 Last Page 1417 of 2429