Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.07.2008, 10:01   #1
Panda
Пользователь
 
Регистрация: 17.06.2008
Сообщений: 24
По умолчанию помогите с матрицей

Ещё раз здравствуйте!
Неужели никто не может написать программу:

Показать, что, если все элементы некоторого ряда определителя имеют общий множитель, то последний можно вынести за знак определителя.

Или хотя бы подскажите как её написать?!
Panda вне форума Ответить с цитированием
Старый 01.07.2008, 11:31   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Вот пример на Паскале. Берется матрица, считается определитель. Потом одна строка умножается на какой-нибудь множитель, снова считается определитель, он равен первому, умноженному на множитель. Можно переделать наоборот.
Код:
program opred;
uses crt;
type
   Tmatr=array [1..20,1..20] of real;
var n:integer;
    a,a1,a2:Tmatr;
    det,det1:real;
    i,j,ns,ch:integer;
procedure Per(k,n:integer;var a:Tmatr; var p:integer);//перестановка, если главный элемент=0
var i,j:integer;z:real;
begin
   z:=a[k,k];i:=k;p:=0;
   for j:=k+1 to n do
     begin
       if abs(a[j,k])>z then
          begin
            z:=abs(a[j,k]);i:=j;
            p:=p+1; //считаем перестановки, от них зависит знак определителя
          end;
     end;
   if i>k then
   for j:=k to n do
     begin
       z:=a[i,j];a[i,j]:=a[k,j];a[k,j]:=z;
     end;
end;
function znak(p:integer):integer;//определение знака
begin
if p mod 2=0 then
znak:=1 else znak:=-1;
end;
procedure opr(n:integer;var a:Tmatr;var det:real);//собственно определитель
var k,i,j,p:integer;
    r:real;
begin
det:=1;
for k:=1 to n do
   begin
     if a[k,k]=0 then per(k,n,a,p);
     det:=znak(p)*det*a[k,k];
     for j:=k+1 to n do
       begin
         r:=a[j,k]/a[k,k];
         for i:=k to n do
           begin
             a[j,i]:=a[j,i]-r*a[k,i];
           end;
       end;
   end;
end;
begin
clrscr;
write('n=');readln(n);
writeln('Ischodnaia matritsha A:');
randomize;
for i:=1 to n do
  begin
    for j:=1 to n do
      begin
        a[i,j]:=random(10)+random;
        write(a[i,j]:6:2);
      end;
  writeln;
  end;
opr(n,a,det);//считаем определитель исходной матрицы
write('opr=',det:4:2);
writeln;
write('Vvedite nomer stroki ns=');//выбираем строку
readln(ns);
write('Vvedite chislo ch=');//задаем множитель
readln(ch);
for i:=1 to n do
for j:=1 to n do
   begin
     a1[i,j]:=a[i,j];
     a1[ns,j]:=a[ns,j]*ch;//умножаем
   end;
opr(n,a1,det1);//считаем новый определитель
write('opr1=',det1:4:2,' = ',ch,' * ',det:4:2);
readln
end.
puporev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с матрицей Panda Помощь студентам 1 06.07.2008 16:42
Помогите с матрицей PASCAL ANARHIST Помощь студентам 6 03.07.2008 18:12
Помогите пожалуйста с матрицей Medvedka Паскаль, Turbo Pascal, PascalABC.NET 4 06.06.2008 07:45
Помогите с матрицей Zolotce Помощь студентам 4 21.04.2008 14:15
Помогите, программа с матрицей Absent Помощь студентам 3 16.12.2007 07:53