MaplePrimes Questions

How to solve Linear first-order PDE by the Lagrange method?

dx/(x) =dy/0=dt/0=du/3=dv/v=dw/w, where x,y,t are independent variables and u,v,w are dependent variables.

hello guys,

I want to plot the phase plane between F and m when:

F := 736*R^4/sqrt((-1380*Pi*R*m(r)^3 + 368*R^4 - 1587*m(r)^2*R^2 + 1280*m(r)^2*a)^2);
R := X^(1/3)/(-l^2 + 4*a) - 3*l^2*m(r)^2/X^(1/3);
X := m(r)*l^2*(sqrt((27*l^2*m(r)^4 - 16*a^2*l^2 + 64*a^3)/(-l^2 + 4*a)) + 4*a)*(-l^2 + 4*a)^2;


m := (l^2*r^2 + r^4 + a*l^2)/(2*l^2*r)

for positive constant a and l

please guide me,


Hello everyone. I took part in a project in which we had to solve problems with Maple 2015. The managers gave us a permanent license. However recently I had trouble on my computer and now Maple doesn't work anymore because it somehow lost the license. The project ended last year, so I can't really ask them anymore. Is there any way to get the license working again? I checked on the site but didn't found anything useful and I'd really need it for the final exam of the last year of high school...

Thanks in advance!

Sorry file was not attached

ASME B31.3-2002 - Flexibility Analysis

This document considers the requirements for flexibility analysis of pipe work in accordance with standard ASME B31.3 2002 Edition.



Temperature Reduction for Swagelok fittings and tube.


Based on 316L Stainless steel fittings and tube, from Data Sheet MS-01-107 rev S and shown below a linear interpolation is used to determine the factor for operation at 100 and 130 centigrade.



Temperature values from table. temp := [93, 204, 315, 426, 537]

Factor values from fable. fact := [1, .96, .85, .79, .76]

Graph of data points. pointplot(temp, fact)


facto := LinearInterpolation(temp, fact)



Factor for operation at 100 centigrade.facto(100) = HFloat(0.9974774774774775)NULL

Factor for operation at 130 centigrade. facto(130) = HFloat(0.9866666666666667)NULL

Swagelok compatability


From the B31.3 standard, Table 326.1 Component Standards, Swagelok fittings are not listed directly but it is considered that they are covered under the entry for Unified inch screw threads (UN and UNR thread form) with designation ASME B1.1. Stainless steel pipe is covered directly with designation ASME B36.19M.

Therefore the use of these parts is acceptable under the standard.

Specific Tube Sizes.


The initial specification suggests a DN15 tube size. This equates to 5/8", however the range of fittings in this size is limited. A preferred size would be to either go down to 1/2" or up to 3/4" tube. These will give an actual bore of ~10mm and ~15mm respectivly. In terms of the pressure and temperature specification the following information is provided from Swagelok data sheet MS-01-181.

1/2" x 0.049" wall pressure rating at 37C. TP05__37 := 3700*Unit('psi') = 3700*Units:-Unit(` psi `)NULL

3/4" x 0.065" wall pressure rating at 37C. TP75__37 := 3300*Unit('psi') = 3300*Units:-Unit(` psi `)NULL

Hence pressure ratings, converted to bar at 130C are:

TP05__130 := convert(TP05__37*facto(130), units, bar) = HFloat(251.70460624926636)*Units:-Unit(bar)NULL

TP75__130 := convert(TP75__37*facto(130), units, bar) = HFloat(224.49329746556185)*Units:-Unit(bar)NULL

Hence the tubing used in the design is acceptable.

Weld Fitting Specifications


There are several types of welded fittings as "Tee" "Reduceing Tee" and "Reducing Unions" and they have various pressure ratings.

A 3/4" tube butt weld "Tee" Tee75__37 := 2400*Unit('psi') = 2400*Units:-Unit(` psi `)NULL

The weld fittings have pressure rating at 130C of. Tee75__130 := convert(Tee75__37*facto(130), units, bar) = HFloat(163.2678527022268)*Units:-Unit(bar)NULL

Hence the weld fittings used in the design are acceptable.


Tube wall calculation



Determine the minimum wall thickness based on the design code.

Design pressure. P__D := 150*Unit('bar') = 150*Units:-Unit(bar)NULL

Outside diameter of nominal 3/4" tube. D__75 := 19.05*Unit('mm') = 19.05*Units:-Unit(mm)NULL

Quality factor. E := 1 = 1 for seamless stainless steel tube.

Allowable stress for 316L tube at 166C (300F). From B31.1 Table A1. S__allow := 115.14*Unit('MPa') = 115.14*Units:-Unit(MPa)NULL

Y__coeff := .4 = .4NULL

Miniumum wall thickness. t__min := P__D*D__75/(2*(E*S__allow+P__D*Y__coeff)) = 0.1179420505e-2*Units:-Unit(m)NULL

Actual wall thickness. W__75 := 1.65*Unit('mm') = 1.65*Units:-Unit(mm)NULL

if W__75 >= t__min then print(PASS) else print(FAIL) end if = PASSNULL``




From Appendix A

allowable stress for TP316L at 100C (212F).convert(16.7, units, ksi, MPa) = 115.1424468NULL

allowable stress for TP316L at room temperature.convert(25.0, units, ksi, MPa) = 172.3689323NULL

convert(18, units, m^3/h, L/minute) = 300NULL

convert(3300.0, units, psi, bar) = 227.5269907NULL

.58*% = 131.9656546NULL

convert(70.0, units, degF, degC) = 38.88888889NULL

convert(300.0, units, degF, degC) = 166.6666667NULL

convert(.117, units, Unit('dm'^3), Unit('L')) = .117NULL



Property(MolarMass, He, useunits)



Property(density, Helium, temperature = 300*Unit(kelvin), pressure = 101325*Unit(Pa), source = CoolProp)



Helium flow rate. flow[he] := 300*Unit('L')/Unit('min')``

Determine molar flow rate. molflow[he] := .1625153176*flow[he]*Units[Unit](kg/m^3)/(4.0026020*Units[Unit](g/mol)) = .2030120876*Units:-Unit(mol/s)NULL

Determine mass flow rate. massflow[he] := 4.0026020*molflow[he]*Units[Unit](g/mol) = 0.8125765879e-3*Units:-Unit(kg/s)NULL

Property(MolarMass, CO2, useunits)



Property(density, CO2, temperature = 300*Unit(kelvin), pressure = 101325*Unit(Pa), source = CoolProp)



Property(MolarMass, Air, useunits)



Property(density, Air, temperature = 300*Unit(kelvin), pressure = 101325*Unit(Pa), source = CoolProp)



Determine the boiling point of water at 6 bar, the maxiumum pressure delivered by the cd90e unit.

boiling := Property(temperature, water, pressure = 6*Unit(bar), Q = 0)



convert(boiling, temperature, Celsius)



evalf(convert(30, units, Unit('ft'^3/'min'), liters/s))




Input Parameters


Allowable stress for calculations. S[A] := evalf(f*(1.25*S[c]+.25*S[h]))`` = 219.82275*Units:-Unit(MPa)NULL

Allowable stress at minimum temperature. S[c] := 172.37*Unit('MPa')

Allowable stress at maximum temperature. S[h] := 115.14*Unit('MPa')

Stress reduction factor for N=7000 to 14000 cycles. f := .9

From Table C6 of standard, modulus of elasticity for stainless steel at room temperature.convert(28.3*10^6, units, psi, MPa) = 195121.6314NULL

Named as E[A] := 195121*Unit('MPa') = 195121*Units:-Unit(MPa)NULL

alpha[stst] := 16*10^(-6)*(Unit('m')*(1/(Unit('m')*Unit('K')))) = (1/62500)*Units:-Unit(1/K)NULL

Flexibility Stress




S[E] := sqrt(S[b]^2+4*S[t]^2) =  = (S[b]^2+4*S[t]^2)^(1/2)NULL

Allowable stress factor for analysis requirement. K[allow] := 208000*S[A]/E[A] = 234.3321939NULL

Pipe diameter for 1/2" tube. D__A := 12.7*Unit('mm') = 12.7*Units:-Unit(mm)NULL

Pipe diameter for 3/4" tube. D__B := 19.05*Unit('mm') = 19.05*Units:-Unit(mm)NULL

Change in temperature. Delta[T] := 130*Unit('K') = 130*Units:-Unit(K)NULL

Section A1

Combined length of section A1.L[A1] := 110*Unit('mm')+119*Unit('mm') = 229*Units:-Unit(mm)NULL

Length increase due to thermal expansion. y[A1] := evalf(alpha[stst]*Delta[T]*L[A1]) = .4763200000*Units:-Unit(mm)NULL

U__A1 := 163*Unit('mm') = 163*Units:-Unit(mm)NULL

K[A1] := D__A*y[A1]/(L[A1]-U__A1)^2 = 0.1388719927e-2NULL

if K__A1 <= K__allow then print(PASS) else print(FAIL) end ifError, cannot determine if this expression is true or false: K__A1 <= K__allowNULL

Section A2

Combined length of section A2.L[A2] := 610*Unit('mm')+119*Unit('mm') = 729*Units:-Unit(mm)NULL

Length increase due to thermal expansion. y[A2] := evalf(alpha[stst]*Delta[T]*L[A2]) = 1.516320000*Units:-Unit(mm)NULL

U__A2 := 622*Unit('mm') = 622*Units:-Unit(mm)NULL

K[A2] := D__A*y[A2]/(L[A2]-U__A2)^2 = 0.1682004018e-2NULL

if K__A2 <= K__allow then print(PASS) else print(FAIL) end ifError, cannot determine if this expression is true or false: K__A2 <= K__allowNULL

Section A3

Combined length of section A3.L[A3] := 723*Unit('mm')+288*Unit('mm') = 1011*Units:-Unit(mm)NULL

Length increase due to thermal expansion. y[A3] := evalf(alpha[stst]*Delta[T]*L[A3]) = 2.102880000*Units:-Unit(mm)NULL

U__A3 := 778*Unit('mm') = 778*Units:-Unit(mm)NULL

K[A3] := D__A*y[A3]/(L[A3]-U__A3)^2 = 0.4919334672e-3NULL

if K__A3 <= K__allow then print(PASS) else print(FAIL) end ifError, cannot determine if this expression is true or false: K__A3 <= K__allowNULL



Length of section B. L[B] := 526*Unit('mm')`` = 526*Units:-Unit(mm) 

Length of section C. L[C] := 1331*Unit('mm') = 1331*Units:-Unit(mm) 

Length of section D. L[D] := 416*Unit('mm') = 416*Units:-Unit(mm) 

Length of section E. L[E] := 526*Unit('mm') = 526*Units:-Unit(mm) 

Length of section F. L[F] := 762*Unit('mm') = 762*Units:-Unit(mm) 

Length of section G. L[G] := 287*Unit('mm') = 287*Units:-Unit(mm) 

Length of section H. L[H] := 440*Unit('mm') = 440*Units:-Unit(mm) 

Length of section I. L[I] := 400*Unit('mm') = 400*Units:-Unit(mm)NULL


Length increase due to thermal expansion. y[B] := evalf(alpha[stst]*Delta[T]*L[B]) = 1.094080000*Units:-Unit(mm)NULL

Length increase due to thermal expansion. y[C] := evalf(alpha[stst]*Delta[T]*L[C]) = 2.768480000*Units:-Unit(mm)NULL

Length increase due to thermal expansion. y[D] := evalf(alpha[stst]*Delta[T]*L[D]) = .8652800000*Units:-Unit(mm)NULL

Length increase due to thermal expansion. y[E] := evalf(alpha[stst]*Delta[T]*L[E]) = 1.094080000*Units:-Unit(mm)NULL

Length increase due to thermal expansion. y[F] := evalf(alpha[stst]*Delta[T]*L[F]) = 1.584960000*Units:-Unit(mm)NULL

Length increase due to thermal expansion. y[G] := evalf(alpha[stst]*Delta[T]*L[G]) = .5969600000*Units:-Unit(mm)NULL

Length increase due to thermal expansion. y[H] := evalf(alpha[stst]*Delta[T]*L[H]) = .9152000000*Units:-Unit(mm)NULL

Length increase due to thermal expansion. y[I] := evalf(alpha[stst]*Delta[T]*L[I]) = .8320000000*Units:-Unit(mm)NULL


K[B] := D[B]*y[B]/(L[B]-u[B])^2Error, (in Units:-Standard:-+) the units `mm` and `1` have incompatible dimensionsNULL

K[C] := D[C]*y[C]/(L[C]-u[C])^2Error, (in Units:-Standard:-+) the units `mm` and `1` have incompatible dimensionsNULL

K[D] := D[D]*y[D]/(L[D]-u[D])^2Error, (in Units:-Standard:-+) the units `mm` and `1` have incompatible dimensionsNULL

K[E] := D[E]*y[E]/(L[E]-u[E])^2Error, (in Units:-Standard:-+) the units `mm` and `1` have incompatible dimensionsNULL

K[F] := D[F]*y[F]/(L[F]-u[F])^2Error, (in Units:-Standard:-+) the units `mm` and `1` have incompatible dimensionsNULL

K[G] := D[G]*y[G]/(L[G]-u[G])^2Error, (in Units:-Standard:-+) the units `mm` and `1` have incompatible dimensionsNULL

K[H] := D[H]*y[H]/(L[H]-u[H])^2Error, (in Units:-Standard:-+) the units `mm` and `1` have incompatible dimensionsNULL

K[I] := D[I]*y[I]/(L[I]-u[I])^2Error, (in Units:-Standard:-+) the units `mm` and `1` have incompatible dimensionsNULL


Error, (in unwith) no package called `Units:-Standard' is currently bound








When I have an operation to perform with Maple, my first reflex is to use the "native" Maple procedure(s) because it seems logical to think that they have been written in order to reduce the memory used and/or the execution time.
Unfortunately, this feeling is not confirmed by reading some of the answers provided on this site.

The attached file shows 4 ways (among probably several others) to center and reduce (by columns) a random matrix.
Amid them is the Statistics:-Scale procedure which appears not to be the most efficient (even a double loop outperforms in term of time).
This is just an example among many others (for instance Statistics:-Select can be easily outperformed)

So my question: why deceive the user with magic functions which sometimes have a very relative efficiency?


I have used Maple almost daily for the last four years, but a few days ago two students approached me with an issue I had never encountered before. However, it had happened to both of them within a few weeks.

They described the issue as follows: When they opened a random Maple document and they tried to type in simple operators (like +, - or *), Maple would instead write an odd symbol, which none of them recognised as a mathematical symbol.

As they could not find a way to solve the problem within Maple, they tried restarting their computers. When they afterwards reopened Maple, the problem was gone and the operators worked as expected again. Neither of the students has experienced the issue since.

During the last few days, I have been trying to replicate the issue myself without success. Therefore, I also don't have any screenshots to share, so hopefully my simple explanation is enough.

My questions are: Has anyone heard about this issue before? Does anyone know what might have caused it? Is there a way to replicate it and/or prevent it from happening again in the future?

I hope someone is able to clarify it a bit for me! :)



How to find the location of the poles of a normal chord in an ellipse ?
Here is my code :

restart; with(geometry); with(plots); `local`(O);
_EnvHorizontalName := x; _EnvVerticalName := y;
corde := a*x/cos(theta)-b*y/sin(theta) = a^2-b^2;
isolate(corde, a/cos(theta));
Error, (in isolate) a*x/cos(theta)-b*y/sin(theta) = a^2-b^2 does not contain a/cos(theta)
eq1 := (a^2-b^2)*X/a^2 = a/cos(theta);
c := solve(eq1, cos(theta));
eq2 := (a^2-b^2)*Y/b^2 = -b/sin(theta);
s := solve(eq2, sin(theta));
lieu := simplify(expand((a^2-b^2)^2*X^2*Y^2*(c^2+s^2 = 1)));
allvalues(eliminate({eq1, eq2}, theta))[1][2];
ell := x^2/a^2+y^2/b^2 = 1;
P := [a*cos(theta), b*sin(theta)];
tgP := x*P[1]/a^2+y*P[2]/b^2 = 1;

sol := solve({corde, ell}, {x, y});
tgP1 := simplify(x*rhs(sol[2][1])/a^2+y*rhs(sol[2][2])/b^2 = 1);

Drawing in a case
a := 5; b := 3; theta := (1/6)*Pi;

line(l1, corde); conic(co, ell);
Pole(P1, l1, co); coordinates(P1);
a := 5; b := 3; theta := (1/6)*Pi;
Ell := implicitplot(ell, x = -a .. a, y = -b .. b, color = red);
Cor := implicitplot(corde, x = -a-1 .. a, y = -b-1 .. b, color = blue);
TgP := implicitplot(tgP, x = 0 .. 10, y = -5 .. 10, color = magenta);
TgP1 := implicitplot(tgP1, x = -5 .. 10, y = -5 .. 10, color = magenta);
lieu := subs(X = x, Y = y, lieu);
subs(x = 125*sqrt(3)*(1/24), y = -27/8, lieu);
Lieu := implicitplot(lieu, x = -a .. a, y = -b .. b, color = green);
dr := draw(P1);
display([Ell, Cor, Lieu, TgP, TgP1, dr], axes = normal, view = [-10 .. 10, -10 .. 10], scaling = constrained);

Why the drawin of the location (lieu) does not appear ? Thank you.


For a quite long program, i have to use the Maple debugger. But, i have never used it before.

For a package containing subpackages like this :



         proc 1

         proc 2

     Subpackage 2

It seems that i have a mistake for one of procedure.

Consequently, for using the Maple debugger, i have tried this : 
stopat(proc 1) 

But, it does nothing.

May you explain me how i can use the Maple debugger in a package ?

I find in the web this vidéo :

It describes how to use the Maple debugger but only on a very short procedure and not in a package.

I thank you in advance for your help and tips

Hi there.

It seems like EllipticCPi(n,k) has a bug when n close to 1:

Both answers should be equal by definition and first is true.

I have the following program in Maple:

my_array := [[.1, .1], [.3, .45], [.55, .78], [.8, .9]]; #define an array of points
my_graph := pointplot(my_array, connect = true); #plot the array on a graph, connecting points
line := plot(.7, x = 0 .. 1); #plotting a horizontal line
display(my_graph, line); #displaying on the same graph

The output looks as follows:


I want to add a vertical line corresponding to the intersection of these two lines. Is there a way to do it?


I have two coupled algebraic equations (not differential equations; but only simple algebraic equations; call them "equ1" and "equ2") in which there are three parameters: "x", "y", and "z".

I want to use "fsolve" (Numerical solve) for solving them and then plotting. But since there are three parameters and two equations hence one of the parameters must be given. I want to give a range for "z", for example [2..9], and step size, for example "0.5", such that maple first puts "2" in both equations and solve them numerically and get the values of "x" and "y" and then record them, and then set the value "2.5" for "z" and again repeat the above cycle until the value "z=9". Finally plot both "x" and "y" in terms of "z".

How do I write this?

Thanks in advance

hello dear fellows maple users,

I need help to find a relation between multiples expressions (A,B..etc) and one term (R). (otherwise, I want to write those expressions in terms of R).

#A is given by


#and R is defined as:


I hope I expressed myself clearly.

thank you for any help you can offer.

Is there any way to use DIFF for the function formula in IF..THEN..?

g := proc(x) if x <= 0 then x^2 + x; else if x < 3*Pi then sin(x); else x^2 - 6*x*Pi + 9*Pi^2 - x + 3*Pi; end if; end if; end proc;

diff(g, x);

Like the above example, but the diff result is 0.....

Vector calculus is very nicely handled in Maple's Physics package:


The gradient of a scalar field in Cartesian coordinates


(diff(f(x, y, z), x))*_i+(diff(f(x, y, z), y))*_j+(diff(f(x, y, z), z))*_k

The gradient of a scalar field in cylindrical coordinates


(diff(f(rho, phi, z), rho))*_rho+(diff(f(rho, phi, z), phi))*_phi/rho+(diff(f(rho, phi, z), z))*_k

But the gradient of a vector field is not available:

Gradient(_rho*f(rho,phi,z) + _phi*g(rho,phi,z) + _k*h(rho,phi,z));

Error, (in Physics:-Vectors:-Nabla) Physics:-Vectors:-Gradient expected a scalar function, but received the vector function: _rho*f(rho, phi, z)+_phi*g(rho, phi, z)+_k*h(rho, phi, z)

I suppose this is because the gradient of a vector field needs to be
expressed in terms a basis consisting of the dyadic products  of the basis vectors

as in _i  _j, _rho_phi, etc., which does not seem to be implemented.


That said, it is quite possible that this is already done and I have missed it in
the documentation since the Physics package is so huge.  But if it's truly not there,
it would be a very useful feature to add.  Calculating gradients of vector fields

is central to continuum mechanics (including elasticity and fluid mechanics).

They are easy to represent in Cartesian coordinates but their calculation in the

frequently needed cylindrical and spherical coordinates are nontrivial and can use

Maple's help.




I want my vector field plot to have more arrows, and am wondering how to do this.  Here is the file:


Thanks in advance!


First 153 154 155 156 157 158 159 Last Page 155 of 2173