Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/27: Рейтинг темы: голосов - 27, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 17.12.2010
Сообщений: 6

Метод гаусса с выбором главного элемента по всей матрице

05.12.2012, 18:45. Показов 5567. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно реализовываю данный метод, и наткнулся на один занимательный момент: в куске кода из 2 циклов, внутри которых 3 println (62 - 67 строки), по задумке, очередной элемент должен меняться, на деле же в этих 2 циклах элементы остаются неизменными. Пробовал вместо выражения после -= поставить просто число или же, допустим, A[k][k] - все работает.
Прошу помочь разобраться.
Java
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
package package_1;
 
public class gauss2{
    public static void main(String[]args){
        int n=3,x=0,y=0,s=0;
        double[][]A=new double[n][n+1];
        A[0][0]=1.61;A[0][1]=-0.09;A[0][2]=0.2;A[0][3]=2.03;
        A[1][0]=-0.1;A[1][1]=0.89;A[1][2]=0.22;A[1][3]=2.34;
        A[2][0]=-0.19;A[2][1]=-0.31;A[2][2]=-0.5;A[2][3]=-2.31;
        double[]a1=new double[n];
        for(int i=0;i<n;i++) 
            a1[i]=0.0;
        double[][]a2=new double[n][n];
        for(int i=0;i<n;i++)
            for(int j=0;j<n;j++)
                a2[i][j]=0.0;
        double[]a3=new double[n];
        for(int i=0;i<n;i++) 
            a3[i]=0.0;
        for(int k=0;k<n;k++){
            double max=A[k][k];x=k;y=k;
            for(int i=k;i<n;i++)
                for(int j=k;j<n;j++)
                    if(Math.abs(A[i][j])>max){
                        max=A[i][j];
                        x=i;
                        y=j;
                    }
            System.out.println("max "+max);
            System.out.println("строка "+x);
            System.out.println("стобец "+y);
            if(x==k&&y!=k)
                for(int i=k;i<n;i++){
                    a1[i]=A[i][y];
                    A[i][y]=A[i][k];
                    A[i][k]=a1[i];
                    System.out.println("перестановка1");
                }
            if(x!=k&&y==k)
                for(int i=k;i<n;i++){
                    a1[i]=A[x][i];                             
                    A[x][i]=A[k][i];
                    A[k][i]=a1[i];
                    System.out.println("перестановка2");
                }
            if(x!=k&&y!=k){
                for(int i=k;i<n;i++){
                    a1[i]=A[i][y];
                    A[i][y]=A[i][k];
                    A[i][k]=a1[i];
                }
                for(int i=k;i<n;i++){
                    a1[i]=A[x][i];                             
                    A[x][i]=A[k][i];
                    A[k][i]=a1[i];
                }
                System.out.println("перестановка3");
            }
            for(int i=k;i<n+1;i++)
                A[k][i]/=max;
            for(int i=k+1;i<n;i++)
                for(int j=0;j<n+1;j++){
                    System.out.println("j="+j);
                    System.out.println(A[1][1]);
                    A[i][j]-=A[k][j]*A[i][k]/A[k][k];
                    System.out.println(A[1][1]);
                }
        }
        for(int i=0;i<n;i++)
            a1[i]=A[i][n];
        a3[n-1]=a1[n-1];
        for(int i=n-2;i>=0;i--){
            s=0;
            for(int j=n-1;j>i;j--)
                s+=A[i][j]*a3[j];
            a3[i]=a1[i]-s;
        }
        for(int i=0;i<n;i++)
            System.out.println(a3[i]);
    }
}
Добавлено через 50 минут
В проблеме разобрался. тему можно закрыть.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.12.2012, 18:45
Ответы с готовыми решениями:

Метод Гаусса с выбором главного элемента
Нужно написать программу, решающую СЛАУ методом Гаусса, так же надо учесть, что матрица может быть вырожденной, первый элемент может быть...

Метод Гаусса с выбором главного элемента
Нужен код Метода Гаусса с выбором главного элемента для C# Windows Forms. Количество неизвестных и переменных пользователь должен задавать...

Метод Гаусса с выбором главного элемента
Ребят!помогите пожалуйста создать простенькую программу ,без замудрений . На Тему :Метод Гаусса с выбором главного элемента.

1
130 / 117 / 30
Регистрация: 14.11.2010
Сообщений: 707
07.12.2012, 13:27
Цитата Сообщение от loty Посмотреть сообщение
В проблеме разобрался.
напишите как...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.12.2012, 13:27
Помогаю со студенческими работами здесь

Метод Гаусса с выбором главного элемента по столбцу
Ребят такая проблема возникла метод гаусса с выбором главного элемента по строке препод даа задание изменить выбор главного элемента по...

Метод Гаусса с выбором главного элемента по строке
Метод Гаусса с выбором главного элемента по строке. Помогите разобраться в чем косяки программы. #include &lt;iostream&gt; #include...

Метод Гаусса с частичным выбором главного элемента
Как написать прогамму методом Гаусса с частичным выбором главного элемента. Помогите пожалуйста буду благодарен.

Метод Гаусса с постолбцовым выбором главного элемента
Доброго времени суток.Помогите реализовать в MathCAD Метод Гаусса с постолбцовым выбором главного элемента.Заранее спасибо)

СЛАУ, метод Гаусса с выбором главного элемента
Надо составить программу для решения слау. Метод решения: гаусс с выбором главного элемента. Надо чтоб матрица могла быть 100 на 100 (...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru