Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
Andruha912009
1

Алгоритм Краута

15.09.2010, 20:13. Показов 1482. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
82
83
package javaapplication4;
 
public class Main {
 
   public static void main(String[] args) {
       float[][] A = new float[][]{{4,1,1,1},{1,4,1,1},{1,1,4,1},{1,1,1,4}};
            float[] X=new float[4];
            float[] Z=new float[4];
            float[] B=new float[]{1,2,3,4};
            float[][] L= new float[4][4];
            float[][] U = new float[4][4];
 
            for (int i = 0; i < 4; i++) {
                for (int j = 0; j < 4; j++){
                  L[i][j]=0;
                  U[i][j]=0;
                  if(i==j){
                      U[i][i]=1;
                  }
 
                }
 
            }
             for (int i = 0; i < 4; i++) {
                for (int j = 0; j < 4; j++){
                    L[i][0]=A[i][0];
                }
             }
 
                for (int j = 1; j < 4; j++){
                    U[0][j]=A[0][j]/L[0][0];
                }
        
            for(int k=1;k<3;k++){
                for(int i=k;i<4;i++){
                    float sum1=0;
                    for(int m=0;m<k-1;m++){
                        sum1+=L[i][m]*U[m][k];
                    }
                    L[i][k]=A[i][k]-sum1;
                }
                for(int j=k+1;j<4;j++){
                    float sum1=0;
                    for(int m=0;m<k-1;m++){
                        sum1+=L[k][m]*U[m][j];
                    }
                    U[k][j]=(A[k][j]-sum1)/L[k][k];
                }
            }
 
float sum=0;
for(int m=0;m<3;m++)
{
    sum+=L[3][m]*U[m][3];
}
L[3][3]=A[3][3]-sum;
 
 
 
Z[0]=B[0]/L[0][0];
for(int k=1;k<4;k++){
    float sum1=0;
    for(int j=0;j<k-1;j++){
        sum1+=L[k][j]*Z[j];
 
    }
    Z[k]=(B[k]-sum)/L[k][k];
}
 
 
X[3]=Z[3];
for(int k=2;k>0;k--){
    float sum1=0;
    for(int j=k+1;j<3;j++)
    {
       sum1+=U[k][j]*X[j];
    }
    X[k]=Z[k]-sum1;
}
 
    }
 
}
матрици L,U,X,Z считает неправильно. Кто может исправить ошибки, напиши те плиз как)
Спасибо
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.09.2010, 20:13
Ответы с готовыми решениями:

Метод Гаусса-Краута с файловой связкой
Нужна помощь в реализации задания : Программно реализовать алгоритм метода Гаусса-Краута решения...

Нужно написать программу на СИ для решения СЛАУ методом LU разложения Краута
Нужно написать программу на СИ для решения СЛАУ с помощью Метода LU разложения Краута

Нужен алгоритм поиска пути в этом лабиринте (будь то волновой алгоритм или алгоритм правой/левой руки )
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; void lab...

Волновой алгоритм поиска (Алгоритм A* / Алгоритм А стар)
Хочу разработать алгоритм для решения головоломки с подвижными дисками (перестановочная...

1
modeller666
20.09.2010, 01:38 2
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
...            
 
int k1 = 0;
        while (k1<3) {
                k1++;
                for (int i=k1; i<4; i++) {
                    float sum1 = 0;
                    for(int m=0; m<k1; m++) {
                        sum1 += L[i][m] * U[m][k1];
                    }
                    L[i][k1] = A[i][k1] - sum1;
                }
                for (int j=k1+1; j<4; j++) {
                    float sum1 = 0;
                    for (int m=0; m<k1; m++) {
                        sum1 += L[k1][m] * U[m][j];
                    }
                    U[k1][j] = (A[k1][j] - sum1) / L[k1][k1];
                }
            }
 
...
Добавлено через 23 минуты
Java
1
2
3
4
5
6
7
8
9
Z[0]=B[0]/L[0][0];
for(int k=1;k<4;k++){
    float sum1=0;
    for(int j=0;j<k-1;j++){
        sum1+=L[k][j]*Z[j];
 
    }
    Z[k]=(B[k]-[B]sum1[/B])/L[k][k];
}
Добавлено через 14 секунд
Java
1
2
3
4
5
6
7
8
9
Z[0]=B[0]/L[0][0];
for(int k=1;k<4;k++){
    float sum1=0;
    for(int j=0;j<k-1;j++){
        sum1+=L[k][j]*Z[j];
 
    }
    Z[k]=(B[k]-[B]sum1[/B])/L[k][k];
}
20.09.2010, 01:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.09.2010, 01:38
Помогаю со студенческими работами здесь

Линейный алгоритм, Алгоритм с ветвлениями, Циклический алгоритм Линейный алгоритм
Линейный алгоритм, Алгоритм с ветвлениями, Циклический алгоритм Линейный алгоритм 1. Объясни, что...

Разработать алгоритм методом пошаговой детализации и программу, реализующую этот алгоритм
Расставить строки данной матрицы в порядке возрастания наибольших элементов в строках.

Построить алгоритм Маркова, который ищет НОД (Алгоритм Евклида)
Здравствуйте, ребята, выручайте. Весь инет перерыл, всю голову сломал, но не могу сделать. Суть в...

Алгоритм устранения непродуктивных нетерминалов, алгоритм построения недостижимых символов
Задание: найдите лишние нетерминалы в следующей грамматике с начальным нетерминалом S и в...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru