one man

Alexey Ivanov

1010 Reputation

16 Badges

9 years, 262 days
Russian Federation

Social Networks and Content at

Maple Application Center

MaplePrimes Activity

These are replies submitted by one man

Have you tried using the nops procedure?
 For example:

@mmcdara   It's okay. This is done intentionally - this can be seen from the text of the program: look at the display, where graphs of different types are located in one direction and in the opposite direction.
(This is if I understood you correctly, because I use an online translator.)

Apparently I couldn't figure out what the question was. 
The spatial method (Draghilev's method) finds the same:
[-1.675392259, 0.108903871]

Basically, you have one equation and one variable. If you want to view your expressions in 3d, then for example

restart; with(plots):
a:= 10; 
smin:= -3; smax:= 2; 
f:= exp(t)+exp(-t^2-2*t); 
g:= exp(-t^2)+exp(-t^2-2*t); 
spacecurve([f, g, t], t = smin .. smax, thickness = 3, view = [-a .. a, -a .. a, -a .. a], axes = normal, color = red)

(Formally, f, g, t can act as independent variables, and you will consider their original expression as a system of two equations with three variables.)

@mmcdara Thanks a lot for your additional work. I will try to adopt your technique, but, most likely, as usual for me, in the form of a ready-made block. Of course, to some extent I understand your text, but I still never can work at such high level. Maple is something fantastic, and that's why I manage to somehow show the some algorithms that were once interesting to me. I do not hide, I am not a professional.

@tomleslie  Oh, I get it, thanks.

@mmcdara  Yes, thanks, everything works now. (But hard for me to understand the text, because I work with Maple at a very amateur level.)

@hamideh  For this polynomial equation, you can express one variable in terms of two others. This is the same as my previous message, only with the formulas.

 f1 := -(1/400)*Pi^2+(.816196912*x1-.408547794*x2-.408547794*x3)^2+(.707106781*x2-.707106781*x3)^2; 
 solve(f1, [x3]);


@hamideh  For example, start a double loop. In the outer loop, change the value of x1, and in the inner loop, change the value of x2 relative to x1, and  solve (f1, [x3]). The solve (f1, [x3]) procedure finds all solutions x3, and you choose the ones you need.

f1 := -(1/400)*Pi^2+(.816196912*x1-.408547794*x2-.408547794*x3)^2+(.707106781*x2-.707106781*x3)^2;

(This is a fairly accurate polynomial approximation to your equation.) Do the same for all periodic solutions that fall within the required range.
If you are not satisfied with the accuracy of the solution, then you can always supplement the loop with the fsolve procedure, but this time relative to your original equation, indicating the corresponding range for the fsolve procedure.
You will succeed.

 Yes, it was necessary to start much more to the left. Then everything fits together.



@dharr  please show your 27 solutions. In my version of Maple, your program doesn't work. I counted 23 on the graph, NextZero and Draghilev's method also gave 23

   1, [HFloat(-4.3095768833401635)], 9.06687679380624446 10  
   2, [HFloat(-1.1023789158944424)], 1.50646519592179118 10  
   3, [HFloat(13.407730779581346)], 7.79979625331606030 10  
   4, [HFloat(18.113661217228824)], 1.66432153059226096 10  
   5, [HFloat(31.783308581635165)], 2.72685562741070698 10  
    6, [HFloat(37.07999963464075)], 1.09762171685012788 10  
    7, [HFloat(39.84837784271576)], 3.93514354435353653 10  
    8, [HFloat(43.82587731863776)], 6.71648974492899953 10  
    9, [HFloat(50.25908342435418)], 2.93121961577290369 10  
   10, [HFloat(55.575394679681445)], 1.35574310347608140 10  
   11, [HFloat(55.882759086494076)], 1.18089220589590038 10  
   12, [HFloat(63.09487085630448)], 6.04421363792351229 10  
    13, [HFloat(68.2966429866009)], 8.61217160919025559 10  
   14, [HFloat(71.81338112721974)], 8.58604581877031592 10  
    15, [HFloat(74.6968525451681)], 4.96600724708695652 10  
   16, [HFloat(82.69383468107193)], 1.58464290578308464 10  
   17, [HFloat(84.61651574863721)], 2.03942768228770888 10  
   18, [HFloat(89.47047663737627)], 6.66622110845338512 10  
   19, [HFloat(93.33508470604818)], 8.73743196683207657 10  
   20, [HFloat(108.15523037467786)], 1.70414072853120047 10  
   21, [HFloat(111.66954228728133)], 1.16034193475833548 10  
   22, [HFloat(127.67295282695558)], 2.57006522730307552 10  
   23, [HFloat(128.95061538591767)], 1.56371757764617314 10  


For example, just print all the points that are animated and you will find out how many there are and see their numerical values...
Do you know how to get the equation of a circle by three  points that do not lie on one straight line? Also, are you familiar with the angles of rotation around the coordinate axes? This is all plus the selection of the values ​​of the periods, and you get algebraic equations instead of trigonometric ones, but with a certain accuracy. There are 5 parameters in total.
I have given the values ​​of these parameters rather roughly, but they can be refined using Maple optimization procedures.


The whole animation is a solution on a tube; the solution can be continued in a practical sense for the entire tube. This is not one or three points, it is an infinite number of solutions. Look carefully at the text. This method can find all solutions on connected sets (for example, on all our tubes separately). The method only needs to hook on one point of such a set. In order to catch on, you need all sorts of techniques, including auxiliary equations.
I advise you to familiarize yourself with the idea of the method. You can do this here.
A lot of information in Russian. There is also a search on the forum. To better master the Draghilev method and help others with this, you can create a separate topic in the questions section.
The algebraic solution is hardly better than the solution by Draghilev's method, but in this case, it seems to me, is much more convenient. By the way, it was found with help by Draghilev's method.
By controlling three parameters: first the radius of the cylinder, then two angles of inclination, you can very accurately select the geometric appearance of the first tube. Then two more parameters remain: the period along the first coordinate and the period along the second coordinate. The quality of the selection of all parameters can be checked by the accuracy of the difference between the original equation and the new one.

The solution can be represented by an infinite number of inclined cylinders with a radius of Pi / 20.
Perhaps for this it is only necessary to choose the angles of the rotation matrix a little more precisely.
The approximate periods of the coordinates are, respectively, (+ -2 * k * Pi / (7.7)) and (+ - k * Pi / (6.7))).

restart; with(plots): 
r := (1/20)*Pi; 
a := 0; 
b := evalf(Pi/(5.1));
c := evalf(-Pi/(4.)); 
m[0, 0] := cos(a)*cos(b); 
m[0, 1] := (-cos(a)*sin(b))*(-sin(c))+sin(a)*cos(c); 
m[0, 2] := -cos(a)*sin(b)*cos(c)+sin(a)*sin(c);
m[1, 0] := -sin(a)*cos(b); 
m[1, 1] := -((-sin(a))*(-sin(b)))*sin(c)+cos(a)*cos(c); 
m[1, 2] := ((-sin(a))*(-sin(b)))*cos(c)+cos(a)*sin(c); 
m[2, 0] := sin(b);
m[2, 1] := -cos(b)*sin(c); 
m[2, 2] := cos(b)*cos(c); 
xn1 := x1*m[0, 0]+x2*m[0, 1]+x3*m[0, 2]; 
xn2 := x1*m[1, 0]+x2*m[1, 1]+x3*m[1, 2]; 
xn3 := x1*m[2, 0]+x2*m[2, 1]+x3*m[2, 2];
 f1 := -r^2+xn1^2+xn2^2;
 f2 := cos(2*Pi*(x1+x2-2*x3))+cos(2*Pi*(x2+x3-2*x1))+cos(2*Pi*(x3+x1-2*x2));
 f3 := (xn1-2*Pi/(7.7))^2+(xn2+Pi/(6.7))^2-r^2; 
Sf := implicitplot3d([f1, f2, f3], x1 = -.75 .. .75, x2 = -.75 .. .75, x3 = -.75 .. .75, color = [RGB(.5, .1, .21), blue, green], numpoints = 5000, transparency = .5, style = surface); 
display(Sf, axes = normal)

It turns out that in the end we can work with an algebraic equation, the equation of a cylinder.


In the first part of the program, we build the curve of intersection of one of the "tubes", for example, with a plane. In the second part of the program, we build curves that intersect our "tube" perpendicular to the first curve at each its point. 
At the end of the work of each part of the program, the result is displayed in the form of a graph. The last graph is animated.
The set of arrays Lg [j] (j = 1..3) is a numerical solution of the selected subset of all  (x, y, z) on a particular "tube".
The distance between the centers of the "tubes" seems to be about  3*(1.399 / (2*Pi)).
The number of solution points and their accuracy can be controlled using parameters in the numerical solution of autonomous ODEs.
If you need to improve the accuracy of the solution, you can use, for example, Newton's method at each point. But it will require additional counting time.
I ask you to consider this text of the program solely as an idea of the algorithm, but not as a program written in Maple. 


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