void memcof(double data[],int n,int m,double& xms,double& d[]){//Given a real vector of data[1..n], and given m, this routine returns m linear prediction//coefficients as d[1..m], and returns the mean square discrepancy as xms.int k,j,i;double p=0.0;double wk1[];double wk2[];double wkm[];ArrayResize(wk1,n+1);ArrayResize(wk2,n+1);ArrayResize(wkm,m+1);double dres1;double dres2;for(j=1;j<=n;j++){
dres1 = data[j];
p += dres1*dres1;}
xms=p/n;
wk1[1]=data[1];
wk2[n-1]=data[n];for(j=2;j<=n-1;j++){
wk1[j]=data[j];
wk2[j-1]=data[j];}for(k=1;k<=m;k++){double num=0.0;double denom=0.0;for(j=1;j<=(n-k);j++){
dres1 = wk1[j];
dres2 = wk2[j];
num += dres1*dres2;
denom += dres1*dres1+dres2*dres2;}
d[k]=2.0*num/denom;
dres1 = d[k];
xms *=(1.0-dres1*dres1);for(i=1;i<=(k-1);i++) d[i]=wkm[i]-d[k]*wkm[k-i];if(k == m)return;for(i=1;i<=k;i++) wkm[i]=d[i];for(j=1;j<=(n-k-1);j++){
wk1[j]-= wkm[k]*wk2[j];
wk2[j]=wk2[j+1]-wkm[k]*wk1[j+1];}}Alert("memcof: never get here in memcof.");return;}
Integer>>:
Что с этим делат дальше - большой вопрос.
Первое, что нужно сделать - вынести за пределы функции выделение памяти. Это относится и к "моей" функции. Хотя вопрос, думаю, был не об этом :)
коэфициенты предсказания находить научился, теперь как их использовать? встречал в конечных формулах добавочный элемент - возбуждающая последовательность, а как её посчитать непонял..
для чего нужно выделение памяти? встретил тоже в коде для с++
коэфициенты предсказания находить научился, теперь как их использовать? встречал в конечных формулах добавочный элемент - возбуждающая последовательность, а как её посчитать непонял..
вот тут например формула
Поскольку размер массива заранее неизвестен вводится только указатель на него, а сам массив размещается уже во время выполнения программы. Но ценовые ряды нестационарны, поэтому можно предположить, что функции придётся вызывать многократно. В этой ситуации выделение памяти вне функции может дать существенную экономию в смысле быстродействия.
Возбуждающая последовательность - это X(n)? Думаю её надо(если надо) вводить исходя из своего подхода к решению конкретной задачи. Другими словами, возможно для достижения успеха как раз и нужно придумать, как её посчитать :)
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
А вот ещё функция :)
Что с этим делат дальше - большой вопрос.
Первое, что нужно сделать - вынести за пределы функции выделение памяти. Это относится и к "моей" функции. Хотя вопрос, думаю, был не об этом :)
для чего нужно выделение памяти? встретил тоже в коде для с++
коэфициенты предсказания находить научился, теперь как их использовать? встречал в конечных формулах добавочный элемент - возбуждающая последовательность, а как её посчитать непонял..
вот тут например формула
для чего нужно выделение памяти? встретил тоже в коде для с++
коэфициенты предсказания находить научился, теперь как их использовать? встречал в конечных формулах добавочный элемент - возбуждающая последовательность, а как её посчитать непонял..
вот тут например формула
Поскольку размер массива заранее неизвестен вводится только указатель на него, а сам массив размещается уже во время выполнения программы. Но ценовые ряды нестационарны, поэтому можно предположить, что функции придётся вызывать многократно. В этой ситуации выделение памяти вне функции может дать существенную экономию в смысле быстродействия.
Возбуждающая последовательность - это X(n)? Думаю её надо(если надо) вводить исходя из своего подхода к решению конкретной задачи. Другими словами, возможно для достижения успеха как раз и нужно придумать, как её посчитать :)