1% Constants
2r1 = 22;
3r2 = 8;
4r3 = 22;
5r4 = 6;
6r5 = 11;
7r6 = 10;
8r7 = r8 = 7;
9pi = 4*atan(1.0);
10theta_2 = 270 * pi/180; % Degrees to radians;
11alpha = 30 * pi/180;
12theta_7 = theta_2 - pi;
13
14% Initial guesses in radians
15theta_3 = 120 * pi/180;
16theta_4 = 110 * pi/180;
17theta_5 = 180 * pi/180;
18theta_6 = 110 * pi/180;
19theta_8 = 100 * pi/180;
20x = [theta_3; theta_4; theta_5; theta_6; theta_8];
21
22for i = 1:5
23% Functions of the guessed values
24f1 = r1 + r2 * cos(theta_2) + r3 * cos(theta_3) + r4 * cos(theta_4);
25f2 = r2 * sin(theta_2) + r3 * sin(theta_3) + r4 * sin(theta_4);
26f3 = r1+ r5 * cos(theta_5) + r6 * cos(theta_6) + r7 * cos(theta_7) + r8 * cos(theta_8);
27f4 = r5 * sin(theta_5) + r6 * sin(theta_6) + r7 * sin(theta_7) + r8 * sin(theta_8);
28f5 = theta_4 - theta_8 + pi - alpha;
29f = [f1;f2;f3;f4;f5];
30
31% Partials of f with respect to each element in x
32dfdt3 = [-r3 * sin(theta_3);r3 * cos(theta_3);0;0;0];
33dfdt4 = [-r4 * sin(theta_4);r4 * cos(theta_4);0;0;1];
34dfdt5 = [0;0;-r5 * sin(theta_5);r5 * cos(theta_5);0];
35dfdt6 = [0;0;-r6 * sin(theta_6);r6 * cos(theta_6);0];
36dfdt8 = [0;0;-r8 * sin(theta_8);r8 * cos(theta_8);1];
37
38A = [dfdt3 dfdt4 dfdt5 dfdt6 dfdt8];
39x = x-inv(A)*f;
40theta_3 = x(1,1);
41theta_4 = x(2,1);
42theta_5 = x(3,1);
43theta_6 = x(4,1);
44theta_7 = x(5,1);
45end
46
1function z = equilateral(x, y)
2N = length(x);
3z = zeros(N,1);
4x1=x(1);
5y1=x(2);
6x2=y(1);
7y2=y(2);
8
9z(1)=(x1 + x2 + sqrt(3)*(y1-y2))/2;
10z(2)=(y1 + y2 + sqrt(3)*(x2 - x1))/2;
11end