Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

ЛАБОРАТОРНАЯ РАБОТА 5 Методы решения систем линейных уравнений

Работа добавлена на сайт samzan.net: 2016-03-30

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 20.5.2024

ЛАБОРАТОРНАЯ РАБОТА №5 «Методы решения систем линейных уравнений ».

Студента группы ПВ-22 Малютина Максима.

Задание. Решить систему линейных уравнений методом квадратных корней  с точностью до 0,001.

Вариант 8.

При разбиении матрицы А на треугольную используются следующая формулы:

j=1..n.


const
size=10;

type vector=array[1..size] of real;

    matrix=array[1..size] of vector;

Procedure InputVector(var a:vector;n:byte);

var i:byte;

begin

 for i:=1 to n do

   begin

     writeln('Введите ',i,'-ый элемент ');

     readln(a[i]);

   end;

end;

Procedure InputMatrix(var a:matrix;n:byte);

var i:byte;

begin

 for i:=1 to n do

   begin

     writeln('Введите ',i,'-ую строку матрицы ');

     InputVector(a[i],n)

   end;

end;

Procedure OutputVector(var a:vector;n:byte);

var i:byte;

begin

 for i:=1 to n do write(a[i]:10:5);

 writeln

end;

Procedure OutputMatrix(var a:matrix;n:byte);

var i:byte;

begin

 for i:=1 to n do outputvector(a[i],n)

end;

Procedure GetT(var t:matrix;a:matrix;n:byte);

var i,j,l:byte;

   s:real;

begin

 for i:=1 to n do

   for j:=1 to n do t[i,j]:=0;

 for j:=1 to n do

   begin

   s:=0;

     for l:=1 to j-1 do s:=s+sqr(t[j,l]);

     s:=a[j,j]-s;

     t[j,j]:=sqrt(s);

       for i:=j+1 to n do

       begin

         s:=0;

           for l:=1 to j-1 do s:=s+t[i,l]*t[j,l];

         t[i,j]:=(a[i,j]-s)/t[j,j]

       end;

   end;

end;

procedure MulMatrix(a:matrix;ma,na:byte;b:matrix;mb,nb:byte;var c:matrix;var mc,nc:byte);

var i,j,k:byte;

   s:real;

begin

 if na=nb then

   begin

     mc:=ma;

     nc:=nb;

     for k:=1 to mc do

       for j:=1 to nc do

         begin

           s:=0;

             for i:=1 to nc do

               s:=s+a[k,i]*b[i,j];

               c[k,j]:=s

         end;

   end

     else

       begin

          writeln('Неверные размеры матриц !!! ');

          halt

       end;

end;

procedure MulVector(a:matrix;ma,na:byte;b:vector;nb:byte;var c:vector;var nc:byte);

var i,j:byte;

   s:real;

begin

 if na=nb then

   begin

     nc:=nb;

     for i:=1 to nc do

       begin

         s:=0;

         for j:=1 to nc do s:=s+a[i,j]*b[j];

         c[i]:=s;

      end;

   end

     else

       begin

          writeln('Неверные размеры матриц !!! ');

          halt

       end;

end;

Procedure TransposeMatrix(var a:matrix;n:byte);

var i,j:byte;

   s:real;

begin

 for i:=1 to n do

   for j:=1 to n do

     begin

       s:=a[i,j];

       a[i,j]:=a[j,i];

       a[j,i]:=s

     end;

end;

procedure GetY(t:matrix;b:vector;var y:vector;n:byte);

 var i,k:byte;

    s:real;

 begin

  for i:=1 to n do

    begin

      s:=0;

        for k:=1 to i-1 do s:=s+t[i,k]*y[k];

      y[i]:=(b[i]-s)/t[i,i];

    end;

 end;

procedure GetX(t:matrix;y:vector;var x:vector;n:byte);

 var j,k:byte;

    s:real;

 begin

  for j:=n downto 1 do

    begin

      s:=0;

        for k:=j+1 to n do s:=s+t[k,j]*x[k];

        x[j]:=(y[j]-s)/t[j,j];

    end;

 end;

var a,at,at2,t:matrix;

   b,b2,y,x:vector;

   n:byte;

begin

 writeln('Введите размерность матрицы  коэффициентов ');readln(n);

 writeln('Введите элементы матрицы коэффициентов ');

 InputMatrix(a,n);

 writeln('Введите вектор свободных членов ');

 InputVector(b,n);

 at:=a;

 TransposeMatrix(at,n);

 MulMatrix(a,n,n,at,n,n,at2,n,n);

 MulVector(at,n,n,b,n,b2,n);

 Writeln('Пребразованная матрица А: ');

 at:=at2;

 outputmatrix(at,n);

 Writeln('Преобразованный вектор B: ');

 b:=b2;

 outputvector(b,n);

 writeln;

 GetT(t,at,n);

 Writeln('Пребразованная матрица T: ');

 outputmatrix(t,n);

 GetY(t,b,y,n);

 writeln('Вектор Y');

 outputvector(y,n);

 GetX(t,y,x,n);

 writeln('Вектор X');

 outputvector(x,n)

end.

Пребразованная матрица А:  Преобразованный вектор B:

  4.97540   1.82880   1.26010        -0.14480   4.23870  -4.67000

  1.82880   3.64830  -1.77800

  1.26010  -1.77800   3.78260

Пребразованная матрица T:   Вектор Y

  2.23056   0.00000   0.00000     -0.06492   2.48788  -1.05155

  0.81988   1.72514   0.00000 Вектор X

  0.56493  -1.29913   1.33256   -0.14090   0.84788  -0.78912




1. Учение о государстве и праве Б Констана и А Токвиля
2. путь Приложение
3. Тема 1. Конституційне право України ~ як галузь права наука та навчальна дисципліна Зміст теми- Конституцій
4. От этого выбора зависит будущее выпускника поэтому выбирать место учебы стоит серьезно
5. вариант. 1. Какой материальный объект может двигаться со скоростью большей скорости света с 1 Субсветов
6. Внутриутробная гипоксия плода
7. Но поскольку постоянство лишь дополнение к изменению то возникает естественный вопрос- существуют ли факты
8. Складається з двох адміністративних областей ~ Кіровоградської та Черкаської
9. тематических наук заведующий кафедрой Прикладной математики Уральского государственного экономическог
10. Локальная компьютерная сеть
11. тема товародвижения в маркетинге
12. ВСТУП ЩО ТАКЕ ПОЛЮВАННЯ ст
13. 27февраля 1996г. ТИПОВАЯ ИНСТРУКЦИЯ 11 ПО ОХРАНЕ ТРУДА ДЛЯ МЕДНИКА ТОИ Р 200 11 96 Инстру
14. 14 лет Служба практической психологии районного отдела образования Полуэктова Е.
15.  [4] Теоретические подходы к проблеме сенсорного развития детей дошкольного возраста [4
16. Сутність та призначення процесу Пресуванням називається процес механічного оброблення продукту коли йо
17. СОФИЯ 2000 Перевод- В
18. Внешнеполитические и внешнеэкономические связи России
19. Технологическая карта конструирования урока с использованием средств ИКТ
20. вариантам Номер варианта выбирается студентом по последней цифре номера зачетной книжки