• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помогите найти обратную матрицу СЛАУ и составить программу

Klubni4ka

Ученик
Регистрация
30 Июн 2011
Сообщения
1
Реакции
0
Баллы
0
Помогите найти обратную матрицу СЛАУ и составить программу

вот система
12,1x1-4,5x2-2x3=19,07
3x1+12,5x2+4,3x3=3,21
-6x1+3,5x2+12,5x3=-18,25
 
писал лабу недавно по решению слау гауссом, вот код:

Код:
const
  m=10;

type

  Vector = array[1..m] of Double;
  Matrix = array[1..m] of Vector;

<------------->
<------------->
<------------->
<------------->
<------------->
<------------->
<------------->

procedure TForm1.Button1Click(Sender: TObject);
  var
    a: Matrix;
    b,x: Vector;
    i,j,k,n: integer;
    h: double;
  begin
     [B] [U]n:=StrToIntDef(Text,StringGrid1.ColCount); <---Начало
      for j:=0 to n-1 do
        for i:=0 to n-1 do
          a[i+1,j+1]:=StrToFloatDef(StringGrid1.Cells[j,i],0);
      for i:=0 to n-1 do
        b[i+1]:=StrToFloatDef(StringGrid2.Cells[0,i],0);
      for i:=1 to n-1 do
          for j:=i+1 to n do
          begin
            a[j,i]:=-a[j,i]/a[i,i];
            for k:=i+1 to n do
              a[j,k]:=a[j,k]+a[j,i]*a[i,k];
              b[j]:=b[j]+a[j,i]*b[i]
          end;
          x[n]:=b[n]/a[n,n];[/U][/B] <--- Конец прямого хода
     [B] for i:=n-1 downto 1 do <--- Начало обратного хода
        begin
          h:=b[i];
          for j:=i+1 to n do
            h:=h-x[j]*a[i,j];
          x[i]:=h/a[i,i];
        end;[/B] <--- Конец обратного хода
      for i:=1 to n do
        ListBox1.Items.Append('x('+IntToStr(i)+')='+FloatToStr(x[i])); 
  end;
Процедура берет значения из полей области StringGrid( заполняются рандомно при запуске формы), ответ выводится в ListBox-е построчно. Нареканий у перпода ко мне не было когда ее сдавал :-)
 
2Klubni4ka
Прежде всего, я зачисляю Вас в клуб ТЯП (Тайна Языка Программирования), куда попадают участники, выкладывающие задания без указания ЯП (Pascal? Delphi?). Поздравляю. Кроме того, мягко говоря неряшливо сформулировано само задание. Что требуется? Какую программу составить? Нахождения обратной матрицы? Решения системы? Решения системы определенным методом? И наши экстрасенсы, как всегда, в отпуска поразбежались...
 
Назад
Сверху