Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

I gave up. Spend 40 minutes trying everything and can't figure the right syntax. 

I need to use indets to obtain all occurrences of specific function in expression. Such as sin() or cos() or ln(), etc...

The indets commands has the form indets(expression, type).

But what is the type of ln ? It is of function type. But this picks up all other functions in the expression. I tried specfun and could not make it work. For example

expr:=x+sin(x)+ln(y)+10+ln(x+y)^2;

I want  to obtain  {ln(y),ln(x+y)^2}

I tried

indets(expr,function); 
indets(expr,specfun(ln));

and many more. Since indets needs a name of a type in the second argument, then what is the type name for ln or sin or cos, etc... I can't use indential, it did not work, since it is not a symbol I am looking for. I could use patmatch, but I am trying to learn indets for all these things.

Do I need to use subsindets for this? I still do not know how to use subsindets.

Maple 2019.1

hi i did this in maple and i get an error when i try to solve the system of equation  :

restart;
with(Student[VectorCalculus]);
with(PDEtools);with(plots);

h_f := 300;
h_a := 1000;
T_f := 1500 + 273;
T_a := 30 + 273;
k_r := 15;
k_s := 70;
Ra := 5;
Rf := 6.05;
Rc := 6;

Lap1 := Laplacian(T_r(r, theta), polar[r, theta]);
Lap2 := Laplacian(T_s(r, theta), polar[r, theta]);
Bc_r := k_r*eval(Gradient(T_r(r, theta), polar[r, theta])[1], r = 5) = h_a*(T_r(5, theta) - T_a);
Bc_s := k_s*eval(Gradient(T_s(r, theta), polar[r, theta])[1], r = 6.05) = h_f*(T_s(6.05, theta) - T_f);
systemThermal_r := Lap1 = 0;
systemThermal_s := Lap2 = 0;
Bc1_rs := eval(T_r(r, theta), r = 6) = eval(T_s(r, theta), r = 6);
Bc2_rs := k_r*eval(Gradient(T_r(r, theta), polar[r, theta])[1], r = 6) = -k_s*eval(Gradient(T_s(r, theta), polar[r, theta])[1], r = 6);
pdsolve([systemThermal_r, systemThermal_s, Bc_r, Bc_s, Bc1_rs, Bc2_rs]);
 
 
 
Error, (in PDEtools:-Library:-NormalizeBoundaryConditions) unable to isolate the functions {T_r(5, theta), T_r(6, theta), T_s(6, theta), T_s(6.05, theta), (D[1](T_r))(5, theta), (D[1](T_r))(6, theta), (D[1](T_s))(6, theta), (D[1](T_s))(6.05, theta)} in the given boundary conditions {15*(D[1](T_r))(5, theta) = 1000*T_r(5, theta)-303000, 15*(D[1](T_r))(6, theta) = -70*(D[1](T_s))(6, theta), 70*(D[1](T_s))(6.05, theta) = 300*T_s(6.05, theta)-531900, T_r(6, theta) = T_s(6, theta)}
 
 

Hello. I'm plotting in polar coordinates. I use to build an expression

polarplot(MF(t), t = 0 .. 2*Pi, color = black, linestyle = 1, thickness = 3, coordinateview = [0 .. 11, 0 .. Pi], axesfont = ["TIMES", "ROMAN", 20], scaling = CONSTRAINED)

At the top there is a lot of empty space. Are there any settings that will allow you to remove the empty space and build only the part of the grid where the graph is located?

I like using Record in Maple. It allows me to collect related variables to pass around inside one object. (Like with Pascal or Ada records or C struct).

But I find myself copying the record definition over and over everywhere I want to use the same specific record layout.

Is there a way to define specific record layout somewhere, may be as a type and give it a name, and then in each proc I want to make a variable of this record type, just tell Maple that this variable is a record of that type so I do not have to explicity define the record there each time? 

Here is a simple example to make it more clear

foo:=proc() #some proc that uses same Record layout
   local S;
   S:=Record('name','age');   
   S:-name:="joe doe 1";
   S:-age:=99;
   return S;
end proc:

boo:=proc() #another proc that wants to use same Record layout
   local S;
   S:=Record('name','age');   
   S:-name:="joe doe 2";
   S:-age:=80;
   return S;
end proc:

S1:=foo();
S2:=boo();

These proc's can be anywhere, such as inside package or module, either local or exported.

I just want to avoid having to type   S:=Record('name','age');   Each time. I want to tell Maple that a local variable is of this specific Record layout, without having to type the layout explicitly.

This way, when I add new field to this Record,  I just have to do it in one place and not in 10 places in the code. 

I think I need to add a new type? But do not know how to do this.  I hope the question is clear. If not, will add more information.

 

How can I fix the error of ChangeOfVariables: Error, (in Student:-MultivariateCalculus:-ChangeOfVariables) unable to solve the change-of-variables equations for the original variables ?

Thanks!

I am preparing a document where in I want to show half circle inide the drawing. I can plot a half circle, but can not bring it inside the drawing canvass. Is there a way to show smooth curves inside the drawing. Pencil tool helps to show my curve, but not a smooth one! In any picture tool, bring forward, sent backward options will be there. Are there such tools in maple?
Thanks for answers.

Cheers.

Ramakrishnan V
 

``

``


 

Download drawing_semicircle.mw

Hello everyone

I have the solution of diffusion equation from Help of maple website. I put the code here

*****************************

restart: with(plots):
 

unprotect(D);
 

alias(c[0]=c0, c[1]=c1, c[2]=c2);
PDE:=diff(C(x,t),t)=D*diff(C(x,t),x,x);
IBC:={C(x,0)=cx0, C(0,t)=ct0, D[1](C)(10,t)=0};
ct0:=1;
cx0:=0;
D:=1;
pds:=pdsolve(PDE,IBC,numeric);
L1:=[0.01, 0.1, 1, 5, 10];
L2:=[red, green, yellow, blue, magenta, black];
for i from 1 to 5 do
 pn[i] := pds:-plot(t=L1[i], color=L2[i]):
end do:
display({seq(pn[i], i=1..5)}, title=`Numerical solution at t=0.01, 0.1, 1, 5, 10`);

****************************

 

the code is working perfectly. But, My question is how can I found the diffusion constant (D) if I have the solution ( C(x,t) ).  Probably it should be an algorithm which use least square method to find (D) based on the data C(x,t).

I am looking for a fast and efficient algorithm if there is any.

thank you so much for your kind attentions in advance

Sincerely yours,

Amir

This ODE turns out to be a simple separable ODE. With one solution, if the ODE is rewritten.

But in its original form, Maple dsolve gives 6 complicated looking solutions with complex numbers in some of them. Even though all 6 solutions are valid.

Any one knows why Maple did that and not give the one simple solution instead? 

I used isolate to solve for y' from the original ODE. Verfiied that only one solution exist.  The ODE then became y'(x)= 3*y(x)/(2*x). Which by uniqueness theorem, should have one unique solution in some region in the RHS or in some region in the LHS that does not inculde x=0 ?

Just wondering what is going on, and why Maple did not give same simpler solution, so I can learn something new. That is all.

restart;

Typesetting:-Settings(typesetprime=true):

ode:= 1/2*(2*x^(5/2)-3*y(x)^(5/3))/x^(5/2)/y(x)^(2/3)+1/3*(-2*x^(5/2)+3*y(x)^(5/3))*diff(y(x),x)/x^(3/2)/y(x)^(5/3) = 0;

(1/2)*(2*x^(5/2)-3*y(x)^(5/3))/(x^(5/2)*y(x)^(2/3))+(1/3)*(-2*x^(5/2)+3*y(x)^(5/3))*(diff(y(x), x))/(x^(3/2)*y(x)^(5/3)) = 0

DEtools:-odeadvisor(ode);

[[_1st_order, _with_linear_symmetries], _exact, _rational]

maple_sol:=dsolve(ode);

y(x) = (1/3)*2^(3/5)*3^(2/5)*(x^(5/2))^(3/5), y(x) = (1/3)*(-(1/4)*5^(1/2)-1/4-((1/4)*I)*2^(1/2)*(5-5^(1/2))^(1/2))^3*2^(3/5)*3^(2/5)*(x^(5/2))^(3/5), y(x) = (1/3)*(-(1/4)*5^(1/2)-1/4+((1/4)*I)*2^(1/2)*(5-5^(1/2))^(1/2))^3*2^(3/5)*3^(2/5)*(x^(5/2))^(3/5), y(x) = (1/3)*((1/4)*5^(1/2)-1/4-((1/4)*I)*2^(1/2)*(5+5^(1/2))^(1/2))^3*2^(3/5)*3^(2/5)*(x^(5/2))^(3/5), y(x) = (1/3)*((1/4)*5^(1/2)-1/4+((1/4)*I)*2^(1/2)*(5+5^(1/2))^(1/2))^3*2^(3/5)*3^(2/5)*(x^(5/2))^(3/5), x/y(x)^(2/3)+y(x)/x^(3/2)+_C1 = 0

map(x->odetest(x,ode),[maple_sol])

[0, 0, 0, 0, 0, 0]

solve(ode,diff(y(x),x),AllSolutions)

(3/2)*y(x)/x

ode2:=isolate(ode,diff(y(x),x)); #solve for y' first

diff(y(x), x) = -(3/2)*(2*x^(5/2)-3*y(x)^(5/3))*y(x)/(x*(-2*x^(5/2)+3*y(x)^(5/3)))

ode2:=simplify(ode2)

diff(y(x), x) = (3/2)*y(x)/x

DEtools:-odeadvisor(ode2);

[_separable]

sol:=dsolve(ode2)

y(x) = _C1*x^(3/2)

odetest(sol,ode2)

0

 

Download strange_ode_answer.mw

Maple 2019.1

Physics 395

Hi, I am trying to plot the phase potrait for this as follow:

s0 := 3*10^5;
d := 10^(-3);
delta := 10^4;
b := 5*10^6;
lamda := 4.16;

DEplot([diff(I(t), t) = s0 + I(t)*(-d - delta*Q(t)/(b + Q(t))), diff(Q(t), t) = -lamda*Q(t)], [I(t), Q(t)], t = 0 .. 10, I = 0 .. 100, 0, Q = 0 .. 100, 0, dirfield = 400, arrows = smalltwo, number = 2, [[0, 4, 0.1], [0, 0.2, 4.1], [0, 7, 0.2], [0, 0.2, 7]], color = red, linecolor = blue, numsteps = 100)

 

But, there is an error saying "Error, (in DEtools/DEplot) vars must be declared as a list, e.g. [x(t),y(t),...]". However, I did the same for other problem and worked well tho. I have no idea what the problem is for above.

Please download 1.txt.

Integrand := parse(FileTools[Text][ReadFile]("1.txt")):

int(Integrand, [z = -R .. R, y = 0 .. R], numeric);

plots[implicitplot3d](Phi = phi, z = -R .. R, y = 0 .. R, Phi = 0 .. 0.1e-1, color = ColorTools[Gradient]("Red" .. "Blue", best)[4], grid = [50, 50, 20]);

Why the integrand has positive real amounts in the domain [z = -R .. R, y = 0 .. R] for R=0.5, but the integral value is negative?

Hi guys

 

I've created a joint display which plots a spacecurve and an arrow which represents the tangent to the curve:

I've written this in the animation format so I can move the tangent arrow along the curve, however when I replace

arrow(subs(s=0,p),subs(s=0,ptan),width=0.3,length=4)

with

arrow(subs(s=A,p),subs(s=A,ptan),width=0.3,length=4)

I get the error:

Error, (in Plot:-AnalyzeData:-StandardizeData) points cannot be converted to floating-point values

I have tried animating the arrow alone(see below) and this works fine, so the problem is coming from try to pass the animation parameter A into the display array of multiple plots.

DG.mw

Thanks

Hi

I have trouble with solving this ODE system using dsolve command:

and 

 

This system have following solutions:

where

and

C's and A are constants of integration.

 

They're equations from this paper https://arxiv.org/abs/1710.01910 (45 and 47). 
               

However, my solution differs from correct one - in output there are hypergeometric functions everywhere.

Is there any way to fix/convert this solution? Or to get rid of these functions (my f1 solution looks very close to original one but with coupled hypergeometric function). 
 

`` ``

``

``

 

``

sysode := 2*q*(3*q-1)*f1(tau)/tau^2+2*q*(diff(f1(tau), tau))/tau+diff(f1(tau), tau, tau)+(kappa^2+f2(tau))*(1+omega)*(tau/t0)^(-(3*(3+omega))*q) = 0, (54*q^3-30*q^2+4*q)*f1(tau)/tau^3+(24*q^2-4*q)*(diff(f1(tau), tau))/tau^2+11*q*(diff(f1(tau), tau, tau))/tau+diff(f1(tau), tau, tau, tau)-3*omega*(1+omega)*(kappa^2+f2(tau))*q*(tau/t0)^(-(3*(1+omega))*q)/tau = 0;

2*q*(3*q-1)*f1(tau)/tau^2+2*q*(diff(f1(tau), tau))/tau+diff(diff(f1(tau), tau), tau)+(kappa^2+f2(tau))*(1+omega)*(tau/t0)^(-3*(3+omega)*q) = 0, (54*q^3-30*q^2+4*q)*f1(tau)/tau^3+(24*q^2-4*q)*(diff(f1(tau), tau))/tau^2+11*q*(diff(diff(f1(tau), tau), tau))/tau+diff(diff(diff(f1(tau), tau), tau), tau)-3*omega*(1+omega)*(kappa^2+f2(tau))*q*(tau/t0)^(-3*(1+omega)*q)/tau = 0

(1)

``

``

simplify(dsolve([sysode], build));

{f1(tau) = _C1*tau^(-q+1/2-(1/2)*(-20*q^2+4*q+1)^(1/2))+_C2*tau^(-q+1/2+(1/2)*(-20*q^2+4*q+1)^(1/2))+_C3*tau^(-9*q+2)*hypergeom([-(1/12)*(16*q+(-20*q^2+4*q+1)^(1/2)-3)/q, (1/12)*(-16*q+(-20*q^2+4*q+1)^(1/2)+3)/q], [-(1/12)*(4*q+(-20*q^2+4*q+1)^(1/2)-3)/q, (1/12)*(-4*q+(-20*q^2+4*q+1)^(1/2)+3)/q], -(1/2)*(tau/t0)^(6*q)*omega), f2(tau) = (-695520*(q^2+(11/21)*q+2/21)*(tau/t0)^(3*q*(omega+5))*_C3*(q-3/10)*omega*q*(q^2-(25/69)*q+2/69)*tau^(-9*q)*hypergeom([-(1/12)*(4*q+(-20*q^2+4*q+1)^(1/2)-3)/q, (1/12)*(-4*q+(-20*q^2+4*q+1)^(1/2)+3)/q], [-(1/12)*(-8*q+(-20*q^2+4*q+1)^(1/2)-3)/q, (1/12)*(8*q+(-20*q^2+4*q+1)^(1/2)+3)/q], -(1/2)*(tau/t0)^(6*q)*omega)-89424*(q^2*(tau/t0)^(3*q*(omega+7))*omega^2*tau^(-9*q)*_C3*(q^2-(25/69)*q+2/69)*hypergeom([-(1/12)*(-8*q+(-20*q^2+4*q+1)^(1/2)-3)/q, (1/12)*(8*q+(-20*q^2+4*q+1)^(1/2)+3)/q], [-(1/12)*(-20*q+(-20*q^2+4*q+1)^(1/2)-3)/q, (1/12)*(20*q+(-20*q^2+4*q+1)^(1/2)+3)/q], -(1/2)*(tau/t0)^(6*q)*omega)+(7/3)*(q^2+(11/21)*q+2/21)*(hypergeom([-(1/12)*(16*q+(-20*q^2+4*q+1)^(1/2)-3)/q, (1/12)*(-16*q+(-20*q^2+4*q+1)^(1/2)+3)/q], [-(1/12)*(4*q+(-20*q^2+4*q+1)^(1/2)-3)/q, (1/12)*(-4*q+(-20*q^2+4*q+1)^(1/2)+3)/q], -(1/2)*(tau/t0)^(6*q)*omega)*_C3*(tau/t0)^(3*(3+omega)*q)*(q^2-(25/69)*q+2/69)*tau^(-9*q)+(1/69)*kappa^2*(1+omega)))*(q^2-(7/9)*q+2/9))/((1+omega)*(4*q-(-20*q^2+4*q+1)^(1/2)-3)*(8*q-(-20*q^2+4*q+1)^(1/2)+3)*(8*q+(-20*q^2+4*q+1)^(1/2)+3)*(4*q+(-20*q^2+4*q+1)^(1/2)-3))}

(2)

NULL

NULL

``

NULLNULL

NULL

NULL

NULL

NULL

``


 

Download question.mw

When I apply the uses function with the Physics package in a procedure, the commands in this package are not restricted to the inside of the procedure, but are applied globally. See the example below:

gds := proc(LL, qi, t)

 local ta,i;  

uses Physics;

ta := sec(diff(diff(LL, diff(qi[i](t), t)), t), i = 1 .. nops(qi));

RETURN(ta) end:

sxy := diff(x(t), t)^2 + diff(y(t), t)^2:

gds(sxy, [x, y], t);

Error, (in Physics:-diff) name expected for external function
 

On the other hand, when I apply the uses function with the LinearAlgebra package in a procedure, the commands in this package are restricted to the inside of the procedure only.
dst:=proc(MM) 

local DA; 

uses LinearAlgebra;

DA:=Determinant(MM); 

RETURN(DA) end:

dst(<<1 | 2>, <3 | 4>>);

                  -2

Determinant(<<1 | 2>, <3 | 4>>);

                         Determinant(Matrix(2, 2, [[1, 2], [3, 4]]))

This could be a bug in Maple 2019?

Hello, I am wondering if Maple is capable of generating a subgraph for a directed, weighed graph with the GraphTheory package. The online resources I can find only include undirected, unweighed graphs. 

can you please include an example with commands that is able to perform the said task?

hi everyone:

how can I solve this below equation?

w:=(x)->sin(lambda*x)+b*cos(lambda*x)-sinh(lambda*x)-b*cosh(lambda*x);

b := -(sin(lambda*L)+sinh*lambda*L)/(cos(lambda*L)+cosh*lambda*L);

L:=10;

equation:=int(w(x)^2,x=0..L)=1;

lambda=????

tnx..

1 2 3 4 5 6 7 Last Page 3 of 1573