Форум программистов, компьютерный форум, киберфорум
Наши страницы

Посчитать обратную матрицу на С# - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ помочь написать программы на С++ http://www.cyberforum.ru/cpp/thread69663.html
1. Определить гласная или согласная буква латинского алфавита. 2. Определить взаимное расположение двух окружностей с центрами в точках (a;b) и (m; n) и радиусами r1 и r2 соответственно. 3....
C++ Не компилируется программа в защищеном режиме Помогите откомпилировать программу в защиненном режиме. Или подскажите где можно об этом "чуде" (защищенном режиме) почитать. //Язык - С++ http://www.cyberforum.ru/cpp/thread69606.html
Не могу зарегистрировать событие. C++
Здравствуйте. Помогите пожалуйста. Скачал библиотеку для работы с блютуз, подключил .h файлы и написал следующее: class Blth { public: //Функция регистрирующая событие void...
C++ Составление программы на с#
ПОмогите пожалуйста составить программу, вознаграждение гарантирую! Опрелелить класс с методом для нахождения максимального и минимального значения среди элементов лдномерного массива целых чисел....
C++ Помошь в составлении программ (на С) http://www.cyberforum.ru/cpp/thread68921.html
1) Найти среднее арифметическое элементов матрицы, лежащих ниже диагонали. (Массивы) 2) Определить корень третьей степени от Z по итерационной формуле, пока |Wn+1 - Wn| < e Wn+1 = Wn +(1/3)(Z/...
C++ Функции #include<iostream.h> #include<conio.h> #include<stdio.h> #include <math.h> void main() { clrscr(); подробнее

Показать сообщение отдельно
Энжи
0 / 0 / 0
Регистрация: 28.11.2009
Сообщений: 13

Посчитать обратную матрицу на С# - C++

02.12.2009, 23:29. Просмотров 1999. Ответов 0
Метки (Все метки)

Как Посчитать обратную матрицу на С# ???

Добавлено через 12 минут
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
uses crt;
const t=0.000001;{ограничиваем числа, близкие к нолю, на них делить}
type Tmatr=array[1..4,1..4]of real;
 
procedure Per(n,k:integer;a:Tmatr;var p:integer);{перестановка строк с макс. главным элементом}
var z:real;
    j,i:integer;
begin
z:=abs(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;
function znak1(i,m:integer):integer;{изменение знака при перестановке строк при нахождении дополнений}
begin
if (i+m) mod 2=0 then
znak1:=1 else znak1:=-1;
end;
procedure opr(n,p:integer;a:Tmatr;var det:real;var f:byte);{нахождение определителя матрицы}
var k,i,j:integer;
    r:real;
begin
det:=1.0;f:=0;
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];
     if abs(det)<t then
      begin
       f:=1;
       writeln('Обратной матрицы нет!');
       readln;
       exit;
      end;
     for j:=k+1 to n do
        begin
         r:=a[j,k]/a[k,k];
         for i:=k to n do
         a[j,i]:=a[j,i]-r*a[k,i];
        end;
   end;
end;
procedure opr1(n,p:integer;d:Tmatr;var det1:real);{нахождение определений для дополнений}
var k,i,j:integer;
    r:real;
begin
det1:=1.0;
for k:=2 to n do
   begin
     if d[k,k]=0 then per(n,k,d,p);
     det1:=znak(p)*det1*d[k,k];
     for j:=k+1 to n do
       begin
         r:=d[j,k]/d[k,k];
         for i:=k to n do
         d[j,i]:=d[j,i]-r*d[k,i];
       end;
   end;
end;
Procedure Peresch(n,p:integer;var b:Tmatr;det1:real;var e:Tmatr);{вычисление дополнений}
var i,m,k,j:integer;
    z:real;
    d,c:Tmatr;
begin
for i:=1 to n do
for m:=1 to n do
   begin
     for j:= 1 to n do {перестановка строк}
       begin
         z:=b[i,j];
         for k:=i downto 2 do
         d[k,j]:=b[k-1,j];
         for k:=i+1 to n do
         d[k,j]:=b[k,j];
         d[1,j]:=z;
       end;
     for k:=1 to n do {перестановка столбцов}
       begin
         z:=d[k,m];
         for j:=m downto 2 do
         c[k,j]:=d[k,j-1];
         for j:=m+1 to n do
         c[k,j]:=d[k,j];
         c[k,1]:=z;
       end;
     Opr1(n,p,c,det1);{вычисление определителей}
     e[i,m]:=det1*znak1(i,m);{вычисление дополнений}
   end;
end;
procedure Transp(a:Tmatr; n:integer;var at:Tmatr);{транспонирование матрицы}
var k,j:integer;
begin
for k:= 1 to n do
for j:=1 to n do
at[k,j]:=a[j,k];
end;
Только на C# не могу полностью перевести (((

Добавлено через 50 минут
Или хотя бы как написать обратную матрицу??? помогите!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru