Мне нужно определить минимальное значение и соответствующий индекс, когда он будет достигнут, в соответствии с уравнением, которое делит временной ряд на две части:
![equation](https://i.stack.imgur.com/10qfH.png)
В этом уравнении n1
и n2
- это размеры двух частей временного ряда, которые составляют исходный временной ряд размером n
. Уравнению устанавливаются следующие дополнительные условия: минимальный размер первой части временного ряда устанавливается равным n1 = 10
, для которого n2 = n – n1
, а затем размер увеличивается: n1 = 11, 12,…, k
, где k = n – 10
при which n2 = 10
.
Я пытался запрограммировать это уравнение, чтобы найти минимальную сумму по итерациям, но я не уверен, что сценарий правильный. В частности, правильно ли нанесены петли? Кроме того, это похоже на n2=11
здесь, в конце, но это должно быть 10
, когда итерации завершаются sh.
n=66; % The size of the original time series for the characteristic Y (e.g., temperature)
n1=n-20; % This operation is needed for the loops below
minsum=10000000; % Declaration of the variable needed for the "if" operator at the end of the script.
for j=1:n1
ik=10+j-1; % This is from 10 to 55
s31=0; % This is preallocation
for i=1:ik % This is from 1 to 10, 11,...,55
s31=s31+Y(i); % The values are taken from 1 to 10,11,...,55
cn=ik; % This is from 10 to 55
Mean1=s31/cn; % Finding of the means from 1 to 10,11,...,55. So, the minimum size of the sample over which the mean is found is 10 years
s32=0;
s32=s32+(Y(i)-Mean1).^2; % This is the first term of the equation
s41=0;
in1=ik+1; % This is from 11 to 56
for k=in1:n % This is from 11 to 66
s41=s41+Y(k);
mn=n-in1+1; % This is from 56 to 11
Mean2=s41/mn; % Finding of the means from 66 to 11,12,...,56 or from 11,12,...,56 to 66 to be consistent with the notation in the formula. So, the minimum size of the sample over which the mean is found is 11 years
s42=0;
s42=s42+(Y(k)-Mean2).^2; % This is the second term of the equation
summation=s32+s42; % Finding the sums between all possible sizes of the two parts of the time series
if summation<minsum
minsum=summation % The minimum sum is displayed in the last output among the iterated values.
imin=in1 % Finding the index in the original time series for which the minimum sum is achieved.
end
end
end
end