Kitonum

21977 Reputation

26 Badges

18 years, 48 days

MaplePrimes Activity


These are answers submitted by Kitonum

Your system in a real 3D defines the usual circle and the problem is to get formulas for obtaining the coordinates of any point of this circle.

S:= solve({2*x+y+z = 3, x^2+y^2+z^2 = 3}, [x, y, z], real, parametric); 

This is only one way to get an answer, in which Maple selects the variable  as a parameter. Here are 3 more ways:

S1:=solve({2*x+y+z = 3, x^2+y^2+z^2 = 3}, [y, z], real, parametric);
S2:=solve({2*x+y+z = 3, x^2+y^2+z^2 = 3}, [x, z], real, parametric);
S3:=solve({2*x+y+z = 3, x^2+y^2+z^2 = 3}, [x, y], real, parametric);

In  S1  method, Maple also takes  x  as a parameter and writes out the values of  [y, z]  as  functions of this parameter. Only the answer is more structured and the values  x  are indicated when there are no real solutions. In  S2  and  S3  methods, everything is the same, only as parameters  y  and  z  are selected. 

All these methods are inconvenient, because they are very cumbersome and do not allow you to easily work with them to solve, for example, such problems: find 100 points on this circle, evenly located on it, or build an animation to build this circle.

Below, we construct a single parametrization of this circle using an angle in the range  0..2*Pi . This angle is the angle of the rotation of a point on this circle with respect to the axis passing through the origin and the center of the circle:

restart;
Sys:=2*x+y+z = 3, x^2+y^2+z^2 = 3:
V:=<2,1,1>:
 # Vector of a normal to the plane 2*x+y+z = 3 
L:=x=2*t,y=t,z=t:  
# Parametric equations of the straight line with a directing vector V
convert(solve([L,2*x+y+z = 3]),list);
C:=rhs~(%[2..-1]);
# The center of the circle
solve({y=1/2,Sys}, explicit);
P:=rhs~(convert(%[1], list));
# The point on the circle for the initial value of the parameter t=0
M:=simplify(Student:-LinearAlgebra:-RotationMatrix(t, V));
# The matrix of rotation around the vector V
Eq:=simplify(convert(M.convert(P-C,Vector),list))+C;
# The parametric equation of the circle

 

## Two examples of the use the parametrization Eq  
with(plots): with(plottools):
display(sphere(sqrt(3)),spacecurve(Eq, t=0..2*Pi, color=red, thickness=4), view=[-2.3..2.3,-2.3..2.3,-2.3..2.3], axes=normal, scaling=constrained);
animate(spacecurve,[Eq, t=0..s, color=red, thickness=4], s=0..2*Pi, background=display(sphere(sqrt(3))), axes=normal, view=[-2.1..2.1,-2.1..2.1,-2.1..2.1], scaling=constrained, orientation=[20,70,0]);


 

 
 

 

Usually these commands (select and remove)  are applied to lists, so do so

remove(has, [D[1](xx[0])], xx[0]);
select(has, [D[1](xx[0])], xx[0]);


The square brackets can be easily removed from the result, if necessary.


 

Maple writes about an error, you have something mixed up with parentheses. I fixed it and got a constant:

Expr:=(1/10)*exp((2/135)*sqrt(-11)*sqrt(225)*t-(2/3*I)*x+1/15)/((3/10)*exp((2/135)*sqrt(-11)*sqrt(225)*t-(2/3*I)*x+1/5));
simplify(Expr);
plot3d(%, x=-1..1, t=-1..1);

Unfortunately, your system does not have real solutions:

restart;
sys:=[(-x3*cos(x5)+(1010-x4)*sin(x5))^2/x1^2+(-x3*sin(x5)-(1010-x4)*cos(x5))^2/x2^2=1, ((-50.5-x3)*cos(x5)+(1060.5-x4)*sin(x5))^2/x1^2+((-50.5-x3)*sin(x5)-(1060.5-x4)*cos(x5))^2/x2^2=1, ((404-x3)*cos(x5)+(1313-x4)*sin(x5))^2/x1^2+((404-x3)*sin(x5)-(1313-x4)*cos(x5))^2/x2^2=1,  -2*x2^2*cos(x5)^2*x3+2020*x2^2*cos(x5)*sin(x5)-2*x2^2*cos(x5)*sin(x5)*x3-2*x1^2*sin(x5)^2*x3-2020*x1^2*sin(x5)*cos(x5)+2*x1^2*sin(x5)*cos(x5)*x4=0, x5=Pi/2]:
solve(sys);

Of course, you can easily insert the cross between two symbols directly without using any special procedures, and in two ways (in infix or prefix notation).

The first way:
`a &times; b`;  # Infix notation
                              

The second way:
`&times;`(a, b);  # Prefix notation
                             


 In the second method, arguments need not necessarily be symbols. For example, for your example, you can write:

with(LinearAlgebra):
R := Vector(3, [x, y, z]):                                           
V := Vector(3, [u, v, w]):
`R &times; V`=R &x V;

# or
`&times;`(R,V)=R &x V;

                         

 

Your more complicated example:

U:=`R &times; V`;
`&times;`('R', cat(`(`, U, `)`));

                               
 

 

 

with(plots):
with(plottools):
animate(spacecurve,[[sqrt(1-s^2)*cos(t),sqrt(1-s^2)*sin(t),s], t=0..2*Pi, color=red, thickness=3], s=-1..1, background=display(sphere()), frames=60, scaling=constrained, view=[-1.2..1.2,-1.2..1.2,-1.2..1.2]);

                   

    Addition - another option: 

with(plots):
with(plottools):
f:=phi->rotate(spacecurve([cos(t),0,sin(t)], t=0..2*Pi, color=red, thickness=3), phi, [[0,0,0],[0,0,1]]):
animate(display,[f(phi)], phi=0..2*Pi, background=display(sphere()), frames=60, scaling=constrained, view=[-1.2..1.2,-1.2..1.2,-1.2..1.2], axes=normal); 

               

restart;
solve(sin(x)=0, allsolutions);
about(_Z1);


Addition. If you need to solve this equation at some interval, then solve the system to which you need to add  explicit  option.

Example:

solve({sin(x)=0, x>=0, x<=3*Pi}, allsolutions, explicit);
 

To get a  solution, I took an almost zero derivative  D(y)(2945)=0.00001  instead and used Preben's method from here :

restart;
ode:=diff(y(x),x,x)-0.00003019*abs(y(x))^0.337=9.542*10^(-13)*x; 
bcs:=y(0)=0,D(y)(2945)=0.00001;
ode2:=evalindets(ode,`^`,x->op(1,x)^(c*op(2,x)));
res:=dsolve({ode2,bcs},numeric,method=bvp[midrich],continuation=c,maxmesh=8192);
plots:-odeplot(res,[x,y(x)]);

 

Edit.
 

The first way:

restart;
alias(s[1]=sin(theta1), c[1]=cos(theta1)):
sin(theta1)*cos(theta1);


The second way:

restart;
s[1]:=sin(theta1): c[1]:=cos(theta1):
s[1]*c[1];


The third way:

restart;
subs([sin(theta1)=s[1],cos(theta1)=c[1]], sin(theta1)*cos(theta1));



 

 


 

Example:

evalc~([solve(z^3=1+I)]);  # All the roots of the third degree of  1+I  in a+I*b form
convert(%, radical);  # Conversion to radicals
convert~(%, polar);  # Conversion to polar 

restart;
rts := [-1.04922510287257-0.450627300642352*I, -1.04922510287257+0.450627300642352*I, 0.324928502807894-1.26649311642498*I, 0.324928502807894+1.26649311642498*I, 0.448593200129344]:
min(abs~(rts)[ ]);

                                                   0.4485932001

e2_3:= w^(1-sigma)*((f__11*sigma*Delta__1/L__1)^(-1/(sigma-1))/w)^(k-sigma+1)*k/(Delta__1*(k-sigma+1)*a__0^k);
simplify(e2_3, symbolic);

hf:=<1/(1-x1-x2)^2+1/x1^2, 1/(1-x1-x2)^2; 1/(1-x1-x2)^2,1/(1-x1-x2)^2+1/x2^2>; # Matrix
x:=<10, 20>; # Vector
subs([x1=x[1], x2=x[2]], hf);


You wrote  x:=[10, 20];  This  x  is a list not a vector
 

plot([Re,Im]~([fsolve(x^3 = 1, complex)]), style=point, color=red, symbol=solidcircle, symbolsize=20, scaling=constrained);

       

 

Explanation. In fact, in one line we combined 3 steps.

The first step is to find three roots:

L:=[fsolve(x^3 = 1, complex)];
L := [-.500000000000000-.866025403784439*I, -.500000000000000+.866025403784439*I, 1.]
 

The second step is to extract the real and imaginary parts from each root:

[Re,Im]~(L);
[[-.500000000000000, -.866025403784439], [-.500000000000000, .866025403784439], [1., 0.]]
 

The last step is the plotting of these three points by plot command.

First we solve the system if in the first equation we replace the inequality by equality. The second equation is squared (we add the condition  -2*x^2+y^2>=0  for preserving the equivalence):

solve({y = 4*x^4+4*x^2*y+1/2, (1/2)*(x-y)^2-(x-y)^4 = (-2*x^2+y^2)^2, -2*x^2+y^2>=0}, [x, y]);

                                        [[x = -1, y = -3/2], [x = 0, y = 1/2]]


As for the initial system, all solutions will be obtained if we add to the points obtained all the points of the blue curve lying in the green region:

A:=plots:-implicitplot([y = 4*x^4+4*x^2*y+1/2, (1/2)*(x-y)^2-(x-y)^4 = (-2*x^2+y^2)^2, -2*x^2+y^2=0], x=-3..3, y=-3..1, color=[red,blue, green], thickness=2, gridrefine=5):
B:=plots:-inequal({-2*x^2+y^2>=0, y<=0},x=-3..3, y=-3..1, color="LightGreen"):
plots:-display(A, B, scaling=constrained);  

First 148 149 150 151 152 153 154 Last Page 150 of 293