Kitonum

21525 Reputation

26 Badges

17 years, 74 days

MaplePrimes Activity


These are answers submitted by Kitonum

restart;
A:=fsolve(2*x^5-x^4-0.5*x^3+3*x^2-0.5);           
B:=fsolve(x^2-1);
sort([A,B])[];

                                  -1.,  -1.000000000,  -0.4158624444,  0.4256094086,  1.

To create an animation, it is convenient to first create a procedure that creates one frame (in the future, the procedure parameter will be an animation parameter). Below are 2 procedures. The  Cone  procedure creates the cone with the base radius  r , height  h  and base center  c . The second procedure  Plane  creates the plane  z=h-y  intersecting the axis  Oz  at a point  [0,0,h] :

restart;
Cone:=proc(r,h,c:=[0,0,0])
uses plottools, plots;
display(cone(c,r,-h, color="LightBlue"), scaling=constrained, axes=none);
end proc:
Plane:=(h,X,Y)->plot3d(h-y,x=-X..X,y=-Y..Y, color=yellow):

# Examples of use

plots:-display(<Cone(2,2)|Cone(2,3)|Cone(2,5)>);
plots:-animate(Cone,[2,h,[0,0,h]], h=1..5, frames=60);
plots:-animate(Plane,[h,1.8,1.8], h=5.7..2.5, background=Cone(2,6,[0,0,6]), frames=60);

                                                

                                               

First, in your expressions, I made some simplifying notation, for example  Cp  for  C(p[1](t))  and so on (see full list of this abbreviations  Change below). This is not necessary, but just makes it easier to visually check the simplifications made. Taking these designations into account,  A  and  B  became  A1  and  B1 . Expression  A1 has been simplified well, but  B1  is only slightly simplified, because there is no subexpression b  in it. If you want to revert to the original notation, then just do the reverse substitutions.

restart;
A := -sqrt(m(p[1](t))/m(q[1](t)))*p[2](t) - l[1]*q[1](t) + l[1]*p[1](t) + q[2](t):

B := -(-sqrt(m(p[1](t))/m(q[1](t))^3)*C(p[1](t))*m(q[1](t))^(3/2)*p[2](t)^2*m(p[1](t)) + C(p[1](t))*p[2](t)^3*m(q[1](t))^(3/2)*sqrt(m(p[1](t))/m(q[1](t))) - l[1]*p[2](t)^2*C(p[1](t))*(p[1](t) - q[1](t))*m(q[1](t))^(3/2) - sqrt(m(q[1](t)))*l[2]*(p[1](t) - q[1](t))*m(p[1](t))^(3/2) + m(p[1](t))*l[1]*p[2](t)*C(p[1](t))*(p[1](t) - q[1](t))*sqrt(m(q[1](t))) - C(q[1](t))*q[2](t)^2*sqrt(m(p[1](t)))*m(q[1](t))*(q[2](t) - 1))/(sqrt(m(p[1](t)))*m(q[1](t))^(3/2)):
indets(B);
Change:=[C(p[1](t))=Cp, C(q[1](t))=Cq, m(p[1](t))=mp, m(q[1](t))=mq, p[1](t)=p1, p[2](t)=p2, q[1](t)=q1, q[2](t)=q2]; # Simplifying substitutions
A1:=subs(Change,A);
B1:=subs(Change,B);

 
Eq1 := q1 - p1 = a;
Eq2 := sqrt(mq)*q2 - sqrt(mp)*p2 = b;

Rule1:=sqrt(a::anything/b::anything)=sqrt(a)/sqrt(b);
Rule2:=sqrt(a::anything/b::anything^3)=sqrt(a)/sqrt(b)/b;

algsubs(Eq2,normal(applyrule(Rule1, A1)));
A1:=algsubs(Eq1,%); # Simplified A1

applyrule(Rule2,B1);
B11:=normal(applyrule(Rule1,%));
B21:=numer(B11);
B22:=denom(B11);

B1:=simplify(algsubs(Eq1,B21))/B22; # Simplified B1

Subs.mw

I've tweaked your procedure a bit. Now it automatically calculates  z_min  and  z_max . I made the numerical values for the grid  as the procedure's parameter (the list  G ). Now a user can choose these values himself (without changing the procedure code) so that the graph looks beautiful :

restart:
grids:=proc(f::algebraic,x_range::`=`,y_range::`=`,G::list)
 local z_min,z_max,plot_f,xz,yz,xy;
uses plots;
z_min:=floor(minimize(f,x_range,y_range));
z_max:=ceil(maximize(f,x_range,y_range));
plot_f:=plot3d(f,x_range,y_range);
xz:=plot3d([x,op([2,1],y_range),z],x_range,z=z_min..z_max,style=line,color=blue,thickness=0,grid=[G[1],G[3]]);
yz:=plot3d([op([2,1],x_range),y,z],y_range,z=z_min..z_max,style=line,color=blue,thickness=0,grid=G[2..3]);
xy:=plot3d([x,y,z_min],x_range,y_range,style=line,color=blue,thickness=0,grid=G[1..2]);
display(plot_f,xz,yz,xy,lightmodel=none,labels=[x,y,"f(x,y)"],labeldirections=[horizontal,horizontal,vertical],axes=frame);
end proc:

# Examples
f:=x^2-y: g:=x^2-y^2:
A:=grids(f,x=-1..3,y=-2..1,[5,4,7]):
B:=grids(g,x=-1..1,y=-1..1,[5,5,5]):
plots:-display(< A | B >);

Use option AllSolutions :

restart;
Sol:=solve(sin(x) = -1/2, x, AllSolutions);
about(_B1);
eval(Sol,_B1=0), eval(Sol,_B1=1);

 

 

Do

odeplot(s, [x, abs(f(x))], x = 0 .. 5, colour = red);

 

Use the  assign  command:

restart;
eq_VS_m4 := 132.790562 = -0.000588*VRi + 0.995381*VRr - (1692.955600*VRi - 1747.964480*VRr)/(VRi^2 + VRr^2);
eq_VS_m5 := 0 = 0.000588*VRr + 0.995381*VRi + (1747.964480*VRi + 1692.955600*VRr)/(VRi^2 + VRr^2);
eq_VS_m6 := (VRi^2 + VRr^2) * lhs(eq_VS_m4) = simplify((VRi^2 + VRr^2) * rhs(eq_VS_m4));
eq_VS_m7 := (VRi^2 + VRr^2) * lhs(eq_VS_m5) = simplify((VRi^2 + VRr^2) * rhs(eq_VS_m5));
sol := solve({eq_VS_m6,eq_VS_m7}, {VRr,VRi});

assign(sol[3]);
sqrt(VRi^2+VRr^2);


Or by the  eval  command without assigning:

restart;
eq_VS_m4 := 132.790562 = -0.000588*VRi + 0.995381*VRr - (1692.955600*VRi - 1747.964480*VRr)/(VRi^2 + VRr^2);
eq_VS_m5 := 0 = 0.000588*VRr + 0.995381*VRi + (1747.964480*VRi + 1692.955600*VRr)/(VRi^2 + VRr^2);
eq_VS_m6 := (VRi^2 + VRr^2) * lhs(eq_VS_m4) = simplify((VRi^2 + VRr^2) * rhs(eq_VS_m4));
eq_VS_m7 := (VRi^2 + VRr^2) * lhs(eq_VS_m5) = simplify((VRi^2 + VRr^2) * rhs(eq_VS_m5));
sol := solve({eq_VS_m6,eq_VS_m7}, {VRr,VRi});

eval(sqrt(VRi^2+VRr^2), sol[3]);
eval(sqrt(VRi^2+VRr^2), sol[2]);


The method with  eval  is more flexible, because allows not to overrun the entire code to use other solutions instead  sol[3] , but to use any of the solutions found if needed.

restart;
M:=proc(M1,M2)
local L1, L2;
L1:=[seq((k-1)/(M1-1),k=1..M1)]; L2:=[seq((k-1)/(M2-1)$M1,k=1..M2)];
Matrix(M1*M2, (i,j)->SGP[j](L2[i],L1[irem(i-1,M1)+1]));
end proc:


Examples of use:

M(2,3);
M(3,2);
M(3,3);


 

You should not use a name and the same indexed name in the same code.

Example:
 

f := a*x+b; 
f[1] := subs(x = 1, f); 
f[2] := subs(x = 2, f);

                                                    f := a x + b
                                                  f[1] := a + b
                                                     f[2] := f


Change names in your code, for example   psi[i]  with  psi1[i]  and  Omega[i]  with  Omega1[i]

We can easily find one solution to this equation in the form of a constant function  f(x) = C :

restart;
eq:=(1/24)*exp(-8)-(1/12)*exp(-5)+(1/24)*exp(-2)-(1/24)*exp(-10)+(1/24)*exp(-9)+(1/24)*exp(-1)+diff(f(x), x, x, x, x, x)+d*(diff(f(x), x))+e*f(x)+a*(diff(f(x), x, x, x, x))+b*(diff(f(x), x, x, x))+c*(diff(f(x), x, x))-1/24;
eval(eq,f(x)=C);
f(x)=solve(%, C);
odetest(%,eq);


The initial conditions for obtaining this solution are obvious. It is also obvious that  limit(C, x=infinity)=C  for C=constant

restart;
sin(2*n*Pi) assuming posint;
sin(n*Pi) assuming integer; # More general result 

                                     0
                                     0

 minhthien2016 180 To check, you can use the procedure below, which finds the center and radius of the insphere from the coordinates of the vertices of the tetrahedron.

restart:
Center_and_Radius:=proc(P1::Vector,P2::Vector,P3::Vector,P4::Vector)
local s1, s2, s3, s4, s, V, R;
uses LinearAlgebra;
s1:=1/2*Norm(CrossProduct(P3-P2,P4-P2),2, conjugate=false):
s2:=1/2*Norm(CrossProduct(P3-P1,P4-P1),2, conjugate=false):
s3:=1/2*Norm(CrossProduct(P2-P1,P4-P1),2, conjugate=false):
s4:=1/2*Norm(CrossProduct(P2-P1,P3-P1),2, conjugate=false):
s := s1+s2+s3+s4:
V:=1/6*Determinant(<P2-P1|P3-P1|P4-P1>);
R:=3*V/(s1+s2+s3+s4);
simplify(1/s*(s1*P1+s2*P2+s3*P3+s4*P4));
convert(%, list),simplify(R);
end proc:


Your example:

Center_and_Radius(<1, 2, 3>, <-2, 8, 9>, <5, 0, 7>, <3, 4, 2>);

                                         [2, 3, 4], 1


This tetrahedron has all flat angles at the vertix  [1,2,3]  equal to 90 degrees, so you can find an equal tetrahedron in the list from my first answer.

The method above does not work in Maple 2018.2.
First, we prove the identity for integers (no problem here). If the number is not an integer, then we use the obvious fact that any not integer real number  x  can be represented in the form  x=x0+t  , x0 is an integer and  t>0, t<1 .

restart;
x:=x0+t:
ceil(x0)+floor(-x0) assuming x0::integer;
ceil(x)+floor(-x) assuming x0::integer, t>0, t<1;
is(%=0) assuming t>0,t<1;

                                                 

 

 Earl 570 Since your equation is written in vector form, it is equivalent to a system of 3 equations with three unknown functions. Of course Maple easily solves this system. To obtain a specific solution, you need to set the initial conditions. I just formally solved these equations without delving into the physical meaning of all this:

restart;
with(LinearAlgebra):
r(t):=<r__x(t),r__y(t),r__z(t)>:
v(t):=diff(r(t),t);

Omega:=<0,0,1>: g := 9.81: theta := Pi/8:
diff(v(t), t)=~ 2/7*(Omega &x v(t)) + <0,5/7*g*sin(theta),0>;
Sys:=convert(%, list);
Sol:=dsolve(Sys);
eval(Sol,[_C1=0,_C2=0,_C3=0,_C4=0,_C5=0,_C6=0]);


We see if in the general solution we take all the undefined constants  _C  to be zero, then, in fact, motion along a straight line is obtained in the opposite direction of x-axis.

First 38 39 40 41 42 43 44 Last Page 40 of 290