• Авторизация


Жесть 2: Впихни не впихуемое... 20-05-2007 23:53 к комментариям - к полной версии - понравилось!


В колонках играет - Astral Projection - People Can Fly [09:55]
Настроение сейчас - Пойдёт... только спать охото...

Таки решил разобраться с заданием глянул... офжизел... исходные данные... пять переменных по 88 значений в каждой, аккуратно напечатаны на листочке и мне типа предлагается всё это дело оцифровать? В звезду такие темы! Сократил кол-во экспериментов  с 88 до 32(а мне больше и не надо!) Дальше думаю лучше... Добрый препод вместо того что бы принести первоисточник информации принёс мне свою рукопись... мля... вот людям не в падлу сидеть и переписывать 10 листов а-четыре... Дык мало того что почерк такой что китайцы обзавидуются, так там ещё и ачепятки... сцуко! нормально списать не может! Ладно... ближе к телу, как говорил Мопасон... та часть  что со статистикой(корреляция, ковариация и прочая поебень) - вышел на википедию нашёл формулы и догнал что там должно быть, так там ведь ещё куча всякой лажи которую не спросишь... чего стоит скажем запись
DO 38 F=1,F (Фортран)
В моём вольном переводе на язык хохлов(уси хохлы пишут на си) получилось следующие
for(int F=1;F<F;F++)

А 7 вложенных циклов это вообще жопа...

Ладно хватит о грустном...

Часть программы я таки написал... во вторник надо будет тренировать мастерство оратора и пытать внушить преподу что эта прога именно то что он ждал всю свою жизнь...

А вот собственно то что я своял...

// opt.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include "iostream.h"

#include "fstream.h"

#include "conio.h"

#include "math.h"

 

int const m=32;//Кол-во экспериментов

int const p=4;//Кол-во независимых переменных

 

int main(int argc, char* argv[])

{

      float y[m],x[p][m];//исходные данные

      float xc[p]={0,0,0,0};;//среднии значения x

      float sx[p]={0,0,0,0};//массив среднеквадратичных отклонений независимой переменной

      float bx[p],b;//относительное среднеквадратичное отклонение

      float bsr=0;//среднее значение исследуемой функции

      float c;//стандартное отклонение зависимой переменной

      float sxy[p]={0,0,0,0};//ковариация

      float ro[p];//взаимная

      int i,j;//циклы

      int b11;

      int F,I,Q,T,B1;

      int z=(int)(10+p*15+pow((5*p),2))/10;

      float **a=new float*[z];

      for(i=0;i<z;i++)

            a[i]=new float[z+1];

      /*Исодные данные*/

      ifstream fin("c:\\data.txt",ios::in||ios::nocreate);

      if(!fin)   

            return 0;  

 

      for(i=0;i<m;i++)

            fin>>y[i];

     

      for(j=0;j<p;j++)

            for(i=0;i<m;i++)

                  fin>>x[j][i];

      fin.close();

      /*^Исодные данные^*/

 

      /*Статистические характеристики*/

      cout<<"---CP---\n";//среднее значение

      for(j=0;j<p;j++)

      {          

            b=0;

            for(i=0;i<m;i++)

            {

                  b+=(float)pow(x[j][i],2);

                  xc[j]+=x[j][i];

 

            }          

            xc[j]/=m;

            bx[j]=(float)pow((b/m-pow(xc[j],2)),0.5);

           

            cout<<xc[j]<<endl;

     

      }

      b=0;

      for(i=0;i<m;i++)

      {

            b+=(float)pow(y[i],2);

            bsr+=y[i];

      }    

      c=(float)(pow((b/m-pow((bsr/m),2)),0.5));

      bsr/=m;

      cout<<"---SX---\n";

      for(j=0;j<p;j++)//отклонение

      {

            b=0;

            for(i=0;i<m;i++)

            {                

                  b+=x[j][i];      

            }          

            b/=m;

            //cout<<"----"<<j<<"----\n";      

            for(i=0;i<m;i++)

            {

                  sx[j]+=(float)pow((b-x[j][i]),2);

                 

            }

            sx[j]/=m;  

            cout<<sx[j]<<endl;

      }

      //ковариация

      cout<<"---SXY---\n";   

      for(i=0;i<m;i++)       

            for(j=0;j<p;j++)       

                  sxy[j]+=(y[i]-bsr)*(x[j][i]-xc[j])/m;

      for(j=0;j<p;j++) 

            cout<<sxy[j]<<endl;

     

      cout<<"---R0---\n";

      //взаимная кореляция

      for(j=0;j<p;j++)

      {    

            ro[j]=sxy[j]/sx[j]/c;

            cout<<ro[j]<<endl;

      }    

      /*^Статистические характеристики^*/

 

      /*Поиск коэффициентов*/

      for(i=0;i<z;i++)

            for(j=0;j<z;j++)

            {

                  a[i][j]=0;

                  a[i][j+1]=0;

            }          

      for(I=1;I<=2;I++)

      {

            F=I-1;

            Q=F-1;

            for(int II=1;II<=2;II++)

            {

                  Q=Q+1;

                  if(Q==2)continue;

                  for(T=1;T<=p;T++)

                  {

                        b11=(int)(10*p*T-5*pow((T),2)+15*T-10)*F/10;                    

                        for(int E=T;E<=p;E++)

                        {

                             b11+=Q;

//                           cout<<endl<<b11<<endl;

//                      getch();

                             for(i=0;i<m;i++)

                             {

                                   a[b11][z+1]+=(float)(y[i]*pow(x[E-1][i],Q)*pow(x[T-1][i],F));

                                   a[b11][0]+=pow(x[E-1][i],2)*pow(x[T-1][i],F);

                                   for(j=0;j<p;j++)

                                   {

                                         a[b11][i+1]+=pow(x[j][i],2)*pow((x[E-1][i]),Q)*pow(x[T-1][i],F);

                                         B1=F*(10*p-5*p+15)/10;

                                         for(int R=j;R<p;R++)

                                         {

                                               B1++;

                                               a[b11][B1]+=x[j][i]*x[R][i]*pow(x[E-1][i],Q)*pow(x[T-1][i],F);

                                         }

                                   }

                             }

                            

                             if(Q<0)

                                   continue;

                             else

                                   goto p1;

 

                        }

                        if(F==0)

                             goto p1;

                        else

                             continue;

                  }

p1:

                  continue;

            }

      }

      cout<<F;

//    I=z+1;

      /*^Поиск коэффициентов^*/

      //delete a;

      //getch();

cin>>i;

      return 0;

}

 

Рабочие части проги это ввод, и нахождение статистических характеристик, остальное от лукавого.
вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник Жесть 2: Впихни не впихуемое... | lite_ - Дневник lite_ | Лента друзей lite_ / Полная версия Добавить в друзья Страницы: раньше»