one man

Alexey Ivanov

1330 Reputation

18 Badges

12 years, 218 days

Social Networks and Content at Maplesoft.com

Maple Application Center

MaplePrimes Activity


These are replies submitted by one man

@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.

restart:
 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.

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

                               1
                         -47.53726862
                               2
                          -46.64054105
                               3
                          -29.30913089
                               4
                          -28.07302137

 

@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
 

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


 

@hamideh 
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.

@hamideh 

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.
https://www.maplesoft.com/applications/view.aspx?SID=149514
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.

@hamideh 
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.

 

@hamideh 
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. 
F(X_Y_Z)=0_hamideh.mw

 

@hamideh 
The graph is not a solution; rather, it shows what the solution looks like. I will find the time and try to show the application of the Draghilev method for your task. This should be one of the "tubes" in numerical form. Then from this set of coordinates you yourself will be able to choose the ones you need taking into account of the period for all the others.

@Kitonum  Гениально, Юрий Николаевич. 

@vv  the numerical solution of an ODE cannot claim to be accurate when finding solutions to nonlinear equations. Each such task must be approached individually. 

@vv  @mmcdara 

This is a collaboration of the Draghilev method with NextZero. I ask you not to pay attention to the quality of the text.
A new variable v is introduced into the original equation; at its zero value, we get a solution to the original equation.
x1*(1+1.000100000*sin(x1^2)) - 2.129280519*v = 0;
In the program, we track when this variable takes a value of 0 and fix the solution to the original equation.
The starting point of the original variable in this case is 1.1, and the initial value of v is always 1 (this is like in the method of continuation of the solution by parameter).
For example, for the integration interval from -50 to 0 and for the starting point 1.1, 3614 solutions are found in the positive direction (printed in reverse order due to the integration interval).
Draghilev_NextZero.mw

@mmcdara  Come on, it's okay. The main thing is that we figured out the reason.

@vv  Thank you for your so kind feedback. 

4 5 6 7 8 9 10 Last Page 6 of 26