Kitonum

9572 Reputation

17 Badges

9 years, 134 days

MaplePrimes Activity


These are replies submitted by Kitonum

@Hoovernent

1. This is allowed in the  local  line to use assignment operation,  the code will be more compact.

2. Your option also works if you specify the delimiters correctly. Should be

Do := proc( F::list(procedure) , Q::list(list))
local n, m;
n:=nops(F); m:=nops(Q);
if n<>m then error "Should be nops(F)=nops(Q)" fi;
seq(F[i]~(Q[i]), i=1..n);
end proc:

 

@Preben Alsholm 

In this case, it may be more appropriate to use  view  option:

restart;
ode:=diff(x(t),t)=x(t)*(0.1-x(t));
res:=dsolve({ode,x(0)=0.1},numeric);
plots:-odeplot(res,[t,x(t)],0..10, view=[0..10,0.09..0.11]);

                     

@jnjn0291  The code for finding all the roots of your polynomial can be written as a procedure with parameters. This procedure is convenient to use both for finding all the roots for given  x  and  y, and for plotting the corresponding graphs.

restart;
AllRoots:=proc(x,y)
local P;
P:=_Z^9-28*_Z^8+328*_Z^7-2088*_Z^6+(-2*cos(y)-2*cos(x)+7852)*_Z^5+(28*cos(y)+28*cos(x)-17768)*_Z^4+(-152*cos(y)-152*cos(x)+23632)*_Z^3+(408*cos(y)+408*cos(x)-17232)*_Z^2+(-12*cos(x)*cos(y)-540*cos(y)-540*cos(x)+5844)*_Z+32*cos(x)*cos(y)+256*cos(y)+256*cos(x)-544:
[fsolve(P, _Z)];
end proc:


Examples of use :

AllRoots(Pi/4, Pi/3);
AllRoots(Pi/6, 3*Pi/4); 

[0.05089860293, 1.023835350, 1.201326046, 1.545691777, 3.227658869, 4.455425609, 4.824850865, 4.977561899, 6.692750982]
[0.1371952453, 0.8165646504, 1.224987212, 1.668481043, 3.169288944, 4.368210397, 4.791342053, 5.189228029, 6.634702427]

The plots of the first 4 eigenvalues:

plot3d([(x,y)->AllRoots(x,y)[1], (x,y)->AllRoots(x,y)[2], (x,y)->AllRoots(x,y)[3], (x,y)->AllRoots(x,y)[4]], 0..2*Pi, 0..2*Pi, color=[yellow,red,blue,green]);
 

       

 

      

@assma 

1. Did you try those options that I suggested?

2. Submit your code here, which leads to the error.

@Hoovernent  It depends on how many variables the function has you want to plot. If the function depends on one variable, then use  plot  command, if on two variables, then  plot3d  command. You can also build several functions on one plot.  See help on these commands

@Muhammad Usman 

Expr:=(A^2/nu)^(1/3)*g*beta*q2[w]*sqrt(nu^2/A)*T(y, t)/((nu*A)^(1/3)*k)+(A^2/nu)^(1/3)*g*beta*T[infinity]/(nu*A)^(1/3)-(A^2/nu)^(1/3)*g*beta*V[infinity]/(nu*A)^(1/3)+(A^2/nu)^(1/3)*g*beta1*C(y, t)/(nu*A)^(1/3)-(A^2/nu)^(1/3)*g*beta1*C[infinity]/(nu*A)^(1/3);
simplify(Expr) assuming A>0, nu>0;
expand(%);

@torabi  I did not understand what this graph means.

If you want to plot  y(t) vs A  with a horizontal A-axis , then you need to go into 3-d space. You will have a surface such that its section with a plane  A=const  will be the corresponding plot of  y(t) :

restart;
P:=proc(A)
local omega, mu, B, eq1, eq2, eq3, dsys3;
omega := -2.667; mu := 10; B := 1;
eq1 := diff(x(t), t) = omega*x(t)-y(t)^2;
eq2 := diff(y(t), t) = mu*(z(t)-y(t));
eq3 := diff(z(t), t) = A*y(t)-B*z(t)+x(t)*y(t);
dsys3 := {eq1, eq2, eq3, x(0) = 10, y(0) = 10, z(0) = 10};
dsolve(dsys3, numeric);
end proc:

plot3d([(A,s)->A, (A,s)->s, (A,s)->eval(y(t),P(A)(s))], 1..10, 0..3, labels=[A,t,y(t)], labelfont=[times,16], numpoints=10000, axes=normal);

                

@torabi  In this case, what do you want to match A for each A?

@assma It is necessary to remove the square brackets and put the  multiplication sign where it was missed:
restart;
f:=(x,y)->exp(-0.96374054*x)*sin(2*Pi*y)*((-0.96374054)^2-4*Pi^2)/(2*Pi);
plots:-contourplot(f(x,y), x=-0.5..1.5, y=-0.5..1.5, numpoints=10000);

 

@Markiyan Hirnyk 

1. The same can be done simplier:

solve([x^3+x^2-y^2, -y+2*x+1], [x, y], explicit);

2.  I changed the head.

@Markiyan Hirnyk  @Carl Love  I do not understand why such intricate ways, when  RootFinding:-Isolate command  immediately gives the desired result:

restart;
with(RootFinding):
sol := Isolate([x^3+x^2-y^2, -y+2*x+1], [x, y]);  
 
Addition.  To solve this system, we can do without calling  RootFinding  package, applying  solve  command, but we will have to tinker to get rid of imaginary parts that are actually 0 :

restart;
sol := simplify(fnormal(evalf(solve([x^3+x^2-y^2, -y+2*x+1], [x, y], explicit))), zero);         

@mapleatha  In Maple 2015-2017 everything works properly. Execute  restart  command first:

restart;
subs([A=1/6,B=8/15,C=3/10], A/(s+1)+B/(s-2)+C/(s+3));

@max125 

1. Try yourself to find errors in your procedures.

2. Of course, this procedure can be written much shorter, for example:

Orthocenter:=proc(A::list, B::list, C::list)
local H;
if (B[1]-A[1])*(C[2]-A[2])=(B[2]-A[2])*(C[1]-A[1]) then error "The points A, B, C lie on one straight line" fi;
H:=proc(A, B, C)
local N;
N:=B-A;
N[1]*('x'-C[1])+N[2]*('y'-C[2])=0;
end proc;
solve({H(A,B,C), H(B,C,A)});
end proc:


Example of use:

Orthocenter([-3,3], [1,3], [-3,0]);

                                                  {x = -3, y = 3}

The problem is to symbolically prove that the determinant is 0. This is trivial:

LinearAlgebra:-Determinant(M):
is(%=0);
                                                           
  true


Another option:

simplify(LinearAlgebra:-Determinant(M));
                                                                0

 

@digerdiga  indexed  is the type of, for example,  a[n] :

whattype(a[n]);
                                  indexed

op(a[n]);
                                       n


The  evalindets  command  (see above)  applies  the procedure  t->op(t)*p+q+b[op(t)]  to any operand  t  of  eq1  of the  indexed  type

 

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