--- /dev/null
+function g = trigonometric_gradient1(x)
+ ##
+ ## The gradient of the trigonometric function. See trigonometric1.m
+ ## for more information.
+ ##
+ n = length(x);
+ g = zeros(n,1);
+
+ cos_sum = sum(cos(x));
+
+ for k = [ 1 : n ]
+ f_k = n - cos_sum + k*(1 - cos(x(k))) - sin(x(k));
+
+ for j = [ 1 : n ]
+ ## Add to the jth component of g the partial of f^2 with
+ ## respect to x(j). The first term that we add here exists
+ ## regardless of j.
+ g(j) = g(j) + 2*f_k*sin(x(j));
+
+ if (j == k)
+ ## But this term vanishes when j != k.
+ g(j) = g(j) + 2*f_k*k*sin(x(k)) - 2*f_k*cos(x(k));
+ end
+ end
+ end
+
+end