Форум программистов, компьютерный форум CyberForum.ru

Привести матрицу 3 на 3 к диагональному виду - C++

Восстановить пароль Регистрация
 
Mikle90
1 / 1 / 0
Регистрация: 15.03.2012
Сообщений: 23
09.06.2012, 19:11     Привести матрицу 3 на 3 к диагональному виду #1
Всем добрый вечер, начал изучать С++. Хочу привести матрицу 3 на 3 к диагональному виду методом Гаусса, но почему-то считает неправильно. Помогите, пожалуйста


C++
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
#include <iostream>
using namespace std;
float main()
{
    int i,j;
    float a[4][4];
    // считываем матрицу
    cout<<"Vvedite matricu 3x3\n";
    for (i=0;i<=2.0;i++)
    {
      for (j=0;j<=2.0;j++)
      {
       cout<<"Vvedite element ["<<i+1<<"]["<<j+1<<"]\n";
       cin>>a[i][j];
      }
    }
    // выводим матрицу
    for (i=0;i<3.0;i++)
    {
      for (j=0;j<3.0;j++)
      {
       cout<<a[i][j] << "\t ";
      }
      cout<<"\n";
    }
    // диагональный вид
    for (i=0;i<3.0;i++)
    {
      for (j=0;j<3.0;j++)
      {
          a[i+1][j]=a[i+1][j]-a[i][j]*(a[i+1][j]/a[i][j]);
      }
    }
    // выводим матрицу
    for (i=0;i<=2.0;i++)
    {
      for (j=0;j<=2.0;j++)
      {
       cout<<"\n"<<a[i][j] << "\t ";
      }
      cout<<"\n";
    }
    cin.get();
    cin.get();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Catstail
Модератор
 Аватар для Catstail
21503 / 10256 / 1670
Регистрация: 12.02.2012
Сообщений: 17,143
09.06.2012, 19:14     Привести матрицу 3 на 3 к диагональному виду #2
это называется не диагональный, а треугольный вид...
rofl113
10 / 10 / 1
Регистрация: 26.02.2012
Сообщений: 36
09.06.2012, 19:18     Привести матрицу 3 на 3 к диагональному виду #3
Во первых откуда i и j = 2.0 - это вообще что такое?!?! У тебя тип int - целочисленные, ну да ладно это мелочи. Щя попробую сам составить, а потом погляжу, что у тебя не правильно.
Mikle90
1 / 1 / 0
Регистрация: 15.03.2012
Сообщений: 23
09.06.2012, 19:26  [ТС]     Привести матрицу 3 на 3 к диагональному виду #4
i=2.0 и j=2.0 это я забыл убрать, когда матрицу делал типа double
rofl113
10 / 10 / 1
Регистрация: 26.02.2012
Сообщений: 36
09.06.2012, 19:28     Привести матрицу 3 на 3 к диагональному виду #5
http://iproc.ru/parallel-programming/lection-4/ почитай может и сам все исправишь (это самый лучший результат будет) заметь там уточняется что формула работает только если главные миноры отличны от нуля! Кстати формула расчета у тебя не верная - сразу видно.

И еще когда делаешь цикл в цикле не надо писать фигурные скобки.

C++
1
2
3
for (i=0;i<3;i++)
  for (j=0;j<3;j++)
    {/*тело программы*/}
Mikle90
1 / 1 / 0
Регистрация: 15.03.2012
Сообщений: 23
09.06.2012, 19:37  [ТС]     Привести матрицу 3 на 3 к диагональному виду #6
Огромное спасибо, прочитал, все понял, получилось!!! Жаль, что сам до алгоритма не додумался...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2012, 19:51     Привести матрицу 3 на 3 к диагональному виду
Еще ссылки по теме:

C++ Привести матрицу к треугольному виду
C++ Получить матрицу, приведенную к блочно-диагональному виду
Привести заданную квадратную матрицу к виду C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
rofl113
10 / 10 / 1
Регистрация: 26.02.2012
Сообщений: 36
09.06.2012, 19:51     Привести матрицу 3 на 3 к диагональному виду #7
Желаю успехов!
Yandex
Объявления
09.06.2012, 19:51     Привести матрицу 3 на 3 к диагональному виду
Ответ Создать тему
Опции темы

Текущее время: 23:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru