Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
16
Добавлен:
17.04.2013
Размер:
9 Кб
Скачать

         { €¤Ґ­вЁдЁЄ жЁп ¤Ё­ ¬ЁзҐбЄЁе ®ЎкҐЄв®ў - ЊЌЉ Ё ЉЂ‹ЊЂЌ}

  Program IDN;
   Uses DOS,Crt,Graph,GB,ALG,CANON,SAMP,ENEX;

     var
        A,B,C,Au,Bu,Cu,Ad,Bd,Sco,S,St,P,PI,SP,SPI    :matr;
        YN,VA,JKt,JK,PJ,KK,P1,J0,VA1,Y1,JtP          :matr;
        Xo,Y,X                                       :vect;
        I,J,n,k,d                                    :integer;
        KI,G,E,U,dv,Jn,dva,a0,a1,tk,dt,Kp,T1,T2      :real;
        TF,YF,GF,UF,EF                               :array[0..21] of real;
        FF                                           :file of real;

    { Procedure UY;
       Var
           UC,T,P:Byte;
           UI    :Integer;
       Begin
          UI:=ROUND(U*128+128);
          If UI<0 Then UI:=0;
          If (UI>255) Then UI:=255;
          T:=UI;
          Asm
           CLI;
          End;
          Repeat
           P:=Port[$31E];
          Until P=127;
          Port[$31F]:=T;
          UC:=Port[$31F];
          Asm
           STI
          End;
          Y:=(UC-128)/128-0.5;
       End;



     Procedure TTT;
         var ii  :integer;
   Begin
     Writeln('         T           G          E          U           Y');
     For II:=0 To 20 Do
      Begin
        I:=II*25;
        Writeln('      ',TF[I]:7:3,GF[I]:11:3,EF[I]:11:3,UF[I]:11:3,YF[I]:11:3);
      End;
     Readln;
   End;   }



  BEGIN
    TextAttr:=58;
    CLRSCR;
   Repeat
    TEXTATTR:=111;
    CLRSCR;
    Writeln;
    Writeln('              €¤Ґ­вЁдЁЄ жЁп ¤Ё­ ¬ЁзҐбЄЁе ®ЎкҐЄв®ў ');
    For I:=1 To 10 Do Writeln(' ');
    Writeln('                   1.Њ®¤Ґ«Ёа®ў ­ЁҐ ');
    Writeln('                   2.‡ ЇЁбм ¬ ббЁў  ');
    Writeln('                   3.—⥭ЁҐ ¬ ббЁў  ');
    Writeln('                   4.€¤Ґ­вЁдЁЄ жЁп  ЊЌЉ ');
    Writeln('                   5.€¤Ґ­вЁдЁЄ жЁп Ї® ЉЂ‹ЊЂЌ“ ');
    Write  ('                   0.ЉЋЌ…– ђЂЃЋ’›. -------->');
    Readln(d);

    if d=1 then
    begin
      Textbackground(1);
      TextColor(15);
      ClrScr;
      writeln;
      writeln('    ‚ў®¤ ¬ ваЁж ­ҐЇаҐалў­®© ¬®¤Ґ«Ё ®ЎкҐЄв ');
      write  ('  ђ §¬Ґа­®бвм ¬ ваЁжл  A:    n=');
      readln(n);
      writeln('  Њ ваЁж  A');
      EN(8,n,n,A);
      writeln('  Њ ваЁж  B');
      EN(9+n,n,1,B);
      writeln('  Њ ваЁж  C');
      EN(10+2*n,1,n,C);
      ClrScr;
      writeln;
      writeln(' „ЁбЄаҐвЁ§ жЁп ­ҐЇаҐалў­ле га ў­Ґ­Ё© б®бв®п­Ёп');
      writeln;
      write('ЏҐаЁ®¤ ¤ЁбЄаҐв­®бвЁ  tk=');
      readln(tk);
      SMP(tk,n,1,A,B,Ad,Bd);
      writeln;
      writeln('     „ЁбЄаҐв­ п  ¬®¤Ґ«м');
      writeln('   ¬ ваЁж  Ad');
      EX(n,n,Ad);
      writeln('   ¬ ваЁж  Bd');
      EX(n,1,Bd);
      ReadLn;
      ClrScr;
      writeln;
      writeln('  ЏаҐ®Ўа §®ў ­ЁҐ Є Є ­®­.д®а¬Ґ гЇа ў«пҐ¬®бвЁ ');
      CONT(n,Ad,Bd,Sco);
      writeln;
      writeln('  Њ ваЁж  гЇа ў«пҐ¬®бвЁ  Sco');
      EX(n,n,Sco);
      Readln;
      DET(n,Sco,dt);
      writeln('  det Sco =',dt);
      readln;
      writeln;
      CFCON (n,1,1,Ad,Bd,C,Sco,Au,Bu,Cu);
      writeln('  Њ ваЁж  Au  ');
      EX(n,n,Au);
      writeln('  Њ ваЁж  Bu  ');
      EX(n,1,Bu);
      writeln('  Њ ваЁж  Cu  ');
      EX(1,n,Cu);
      readln;
      ClrScr;
      writeln;
      writeln('          ђҐиҐ­ЁҐ га ў­Ґ­Ё© б®бв®п­Ёп ');
      writeln;
      writeln('     ‚ҐЄв®а ­ з «м­ле гб«®ўЁ©    ');
      writeln;
      write('   x1(0)=');
      readln(Xo[1]);
      write('   x2(0)=');
      readln(Xo[2]);
      write('   x3(0)=');
      readln(Xo[3]);
      MULV(1,n,Cu,Xo,Y);
      writeln;
      writeln('  k    і y(k) і ');
      writeln('----------------');
      writeln('  ',0  , '    і',y[1]:4 ,'і');
      yf[0]:=y[1];
      k:=1;
     repeat
      MULV(n,n,Au,Xo,X);
      MULV(1,n,Cu,X,Y);
      yf[k]:=y[1];
      writeln(' ',k:2, '    і',yf[k]  :8,'і');
      for i:=1 to n do  Xo[i]:=X[i];
      k:=k+1;
     until k=21;
      readln;
    end;

  {  If D=1 Then
    Begin
     Write('     KP=');Readln(KP);
     Write('     T1=');Readln(T1);
     Write('     T2=');Readln(T2);
     For I:=0 To 20 Do
      Begin
       YF[I]:=KP*(1 - T1*EXP(-0.1*I/T1)/(T1-T2) + T2*EXP(-0.1*I/T2)/(T1-T2));
       TF[I]:=I*0.1;
      End;
      TTT;
    End;  }



    If d=2 Then
    Begin
     Assign(FF,'RA.DAT');
     Rewrite(FF);
     for i:=0 to 20 do  write(FF,yf[i]);
     Close(FF);
     writeln('  k    і       y(k)       і ');
      writeln('---------------------------');
      for i:=0 to 20 do writeln(' ',i:2, '    і',yf[i]  ,'і');
      readln;
    End;


    If d=3 Then
    Begin
      Assign(FF,'RA.DAT');
      Reset(FF);
      writeln('  k    і        y(k)     і ');
      writeln('---------------------------');
      i:=0;
      While not EOF (FF) do
      Begin
        Read(FF,yf[i]);
        INC (i);
        writeln(' ',i:2, '    і',yf[i]  ,'і');
      end;
      Close(FF);
      readln;
    End;

    If d=4 Then
    Begin
      Textbackground(1);
      TextColor(15);
      ClrScr;
      writeln;
      writeln('         €¤Ґ­вЁдЁЄ жЁп ¬Ґв®¤®¬ ­ Ё¬Ґ­миЁе Єў ¤а в®ў  ');
      writeln;
{      writeln('        _V(k) = S#(k)*Y(k)                              ');
      writeln('                Э-ao    Э                               ');
      writeln('                Э-a1    Э                               ');
      writeln('        _V(k) = Э...... Э -ўҐЄв®а ®жҐ­ЄЁ Ї а ¬Ґва®ў Ї®  ');
      writeln('                Э-a(n-1)Э        Є Ё§¬ҐаҐ­Ёп¬           ');
      writeln('               в           в                             ');
      writeln('  S#(k) = invЭS (k)*S(k)Э*S (k) - ЇбҐў¤®®Ўа в­ п ¬ ваЁж  ');
      writeln;
      writeln('            Эy(1).....y(n)  Э                           ');
      writeln('     S(k) = Эy(2).....y(n+1)Э - ¬ ваЁж  Ё§¬ҐаҐ­Ё© ўл室 ');
      writeln('            Э.............. Э                           ');
      writeln('            Эy(k-n)...y(k-1)Э                           ');
      writeln;
      writeln('            Эy(n+1)Э                                    ');
      writeln('            Эy(n+2)Э                                    ');
      writeln('     Y(k) = Э..... Э -ўҐЄв®а Ё§¬ҐаҐ­Ё© ўл室            ');
      writeln('            Эy(k)  Э                                    ');
      writeln;  }
      Write('        n= ');  readln (n);
      Write('        k= ');  readln (k);
      writeln('  k    і y(k) і       ');
      writeln('----------------      ');
      for i:=0 to k do
      writeln(' ',i:2, '    і',yf[i]  :8,'і      ');
      readln;
      for i:=1 to k-n do for j:=1 to n do
      begin
        S [i,j]:=Yf[j+i-1];
        YN[i,1]:=Yf[n+i];
        St[i,j]:=S [j,i];
      end;
      MUL(n,k-n,n,St,S,PI);
      INV(n,PI,P);
      MUL(n,n,k-n,P,St,SPI);
      MUL(n,k-n,1,SPI,YN,VA);
  {    writeln(' ¬ ваЁж   S');
      EX(k-n,n,S);
      readln;
      writeln(' ўҐЄв®а  Yn');
      EX(k-n,1,YN);
      readln;
      writeln(' ¬ ваЁж   P');
      EX(n,n,P);
      readln;    }
      writeln(' ЋжҐ­Є  Ї а ¬Ґва®ў ®ЎкҐЄв  Ї®',k:3,' Ё§¬ҐаҐ­Ёп¬  і    ЁбвЁ­®Ґ §­ зҐ­ЁҐ');
      for i:=1 to n do writeln ('    a',(i-1):1,'=',-VA[i,1],'                     і    ',-Au[n,i]);
      readln;
    end;



   if D=5 then           { ЊҐв®¤  ЉЂ‹ЊЂЌЂ}
    begin
      Textbackground(1);
      TextColor(15);
      ClrScr;
      writeln;
      writeln;
      writeln('                   ЁбвЁ­®Ґ §­ зҐ­ЁҐ');
      for i:=1 to n do
      write  ('      ',-Au[n,i]);
      writeln;
      writeln('---------------------------------------------------------------------- ');
      writeln(' k           a0                     a1                     a2         ' );
      writeln('---------------------------------------------------------------------- ');
      k:=10;
     repeat
      for i:=1 to n do
      begin
        Jk [i,1]:=YF[k-n+i];
        Jkt[1,i]:=Jk[i,1];
      end;
      MUL(1,n,n,Jkt,P,JtP);
      MUL(1,n,1,JtP,Jk,J0);
      Jn:=1/(1+J0[1,1]);
      MUL(n,n,1,P,Jk,PJ);
      for i:=1 to n do KK[i,1]:=PJ[i,1]*Jn;
      MUL(n,1,n,KK,JtP,P1);
      for i:=1 to n do for j:=1 to n do P[i,j]:=P[i,j]-P1[i,j];
      MUL(1,n,1,Jkt,VA,y1);
      for i:=1 to n do
      begin
        VA1[i,1]:=Kk[i,1]*(YF[k+1]-y1[1,1]);
        VA[i,1]:=VA[i,1]+VA1[i,1];
      end;
     { writeln('   Ki(k+1)   ');
      EX(n,1,Kk);
      readln;
      ClrScr; }
      writeln('',(k+1):3,'   ',-VA[1,1],'      ',-VA[2,1],'      ',-VA[3,1]);
      k:=k+1;
     until k=20;
      readln;

    end;
      until d=0;
  END.



Соседние файлы в папке curstau