4 / 0 / 2
Регистрация: 07.12.2009
Сообщений: 39

Решение СЛАУ методом Гаусса-Зейделя

16.12.2012, 19:46. Показов 8519. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток! Люди добрые, поделитесь ,пожалуйста, работоспособным кодом решения СЛАУ методом Гаусса-Зейделя.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.12.2012, 19:46
Ответы с готовыми решениями:

Решение СЛАУ методом Гаусса
Ребят срочно выручайте пожаоуйста, нужна программа для вычисление СЛАУ 4-го порядка методом Гаусса в Form1 на Visual Basic

Решение системы уравнений методом простых итераций и методом Зейделя
Метод Итераций Private Sub Command4_Click() 'Ìåòîä ïðîñòûõ èòåðàöèé Dim eps As Integer, niter As Long, iimax As Long eps = 0.0001...

Решить СЛАУ методом Гаусса
x+3y-z=4 -x+2y+3z=12 2x+y-z=1 надо сделать блок схему и составить программу на VB или VBA pomogite pl3((((:cry: Добавлено через...

20
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
16.12.2012, 21:09
система определена?
если да, - норма меньше 1?
0
4 / 0 / 2
Регистрация: 07.12.2009
Сообщений: 39
16.12.2012, 22:00  [ТС]
если честно, теорию по данному методу вообще не читал, ибо нет необходимости- 100% этот метод уже кем-то написан, а обычным методом гаусса решается на ура заданная система:
-8 -1 -4 10 | 4
8 8 2 -4 |7
6 4 1 -4 |-1
10 27 -4 -5 |6
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
16.12.2012, 22:07
так Вам что только вот эту систему решить или прога нужна для произвольной с-мы
0
4 / 0 / 2
Регистрация: 07.12.2009
Сообщений: 39
16.12.2012, 22:25  [ТС]
по-сути только эту..но чтобы немаяться, хотел модуль подключить к проекту, но метод гаусса-зейделя должен быть.
0
Телекомпания ВИD
 Аватар для anny05
1364 / 115 / 19
Регистрация: 14.10.2012
Сообщений: 100
16.12.2012, 22:44
Цитата Сообщение от Extremo Посмотреть сообщение
по-сути только эту
Тогда Вам прямая дорога в раздел Математика (там методы Гаусса, Зейделя, а также прочие - поднимались неоднократно).
Зейделя: Решение СЛАУ методом Зейделя

Хотя мне все равно, могу и здесь решить.
Миниатюры
Решение СЛАУ методом Гаусса-Зейделя  
1
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
16.12.2012, 22:48
нужен комбинированный
0
4 / 0 / 2
Регистрация: 07.12.2009
Сообщений: 39
16.12.2012, 23:30  [ТС]
Спасибо за математику конечно, но Вы меня немного не так поняли: мне математика не нужна, мне нужен всего навсего алгоритм метода на языке VB
0
4 / 0 / 2
Регистрация: 07.12.2009
Сообщений: 39
16.12.2012, 23:38  [ТС]
Вот пример метода решения СЛАУ методом Халецкого, взятый с библиотеки алгоритмов. А мне нужен метод Гаусса-Зейделя
Вложения
Тип файла: txt Module1.bas.txt (1.5 Кб, 83 просмотров)
0
4 / 0 / 2
Регистрация: 07.12.2009
Сообщений: 39
17.12.2012, 10:07  [ТС]
что-то не правильно портировал с Паскаля:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
e = 0.001
Do
    M = 0
    For i = 1 To n
            s = 0
        For J = 1 To n
          If i <> J Then s = s + a(i, J) * x(J)
        v = x(i)
        x(i) = (b(i) - s) / a(i, i)
        M = Abs(x(i)) - Abs(v)
    Next
    Next
  Loop Until M < e
 
For i = 1 To 4
Debug.Print x(i)
Next
При выполнении кода Иксы выдаёт равными нулю

исходник:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Сам алгоритм
  repeat
    m := 0;
    for i := 1 to n do
      begin
        s := 0;
        for j := 1 to n do
          if i <> j then s := s + a[i, j] * x[j];
        v := x[i];
        x[i] := (b[i] - s) / a[i, i];
        m:=abs(x[i])-abs(v);
      end;
  until m < e;
 
  // Вывод корней
  writeln('roots: ');
  for i := 1 to n do
    writeln('x[', i, ']= ', x[i]:0:4);
Добавлено через 13 минут
забыл указать n=4 и массив на другой кнопке висел, прямо по-детски получилось. заработало, но корни не верные выдаёт, значит где-то ошибся, а где?
0
 Аватар для Апострофф
9894 / 3905 / 738
Регистрация: 11.10.2011
Сообщений: 5,879
17.12.2012, 10:38
Extremo, Next из 11-й строки перенеси на восьмую (перед v = x(i))
0
4 / 0 / 2
Регистрация: 07.12.2009
Сообщений: 39
17.12.2012, 11:33  [ТС]
Цитата Сообщение от Апострофф Посмотреть сообщение
Extremo, Next из 11-й строки перенеси на восьмую (перед v = x(i))
Спасибо, но корни всё-равно не те...привожу полностью код
Visual Basic
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
Dim a(1 To 4, 1 To 4) As Double
Dim b(1 To 4) As Double
Dim x(1 To 4) As Double
Private Sub Command1_Click()
a(1, 1) = -8
a(1, 2) = -1
a(1, 3) = -4
a(1, 4) = 10
b(1) = 4
 
a(2, 1) = 8
a(2, 2) = 8
a(2, 3) = 2
a(2, 4) = -4
b(2) = 7
 
a(3, 1) = 6
a(3, 2) = 4
a(3, 3) = 1
a(3, 4) = -4
b(3) = -1
 
a(4, 1) = 10
a(4, 2) = 27
a(4, 3) = -4
a(4, 4) = -5
b(4) = 6
e = 0.0001
n = 4
Do
    M = 0
    For i = 1 To n
            s = 0
        For J = 1 To n
          If i <> J Then s = s + a(i, J) * x(J)
        Next
        v = x(i)
        x(i) = (b(i) - s) / a(i, i)
        M = Abs(x(i)) - Abs(v)
    Next
    'Next
  Loop Until M < e
 
' вывод результата
For i = 1 To 4
Debug.Print x(i)
Next
Debug.Print 6 * x(1) + 4 * x(2) + 1 * x(3) - 4 * x(4) 'должно выводить -1
End Sub
0
4 / 0 / 2
Регистрация: 07.12.2009
Сообщений: 39
23.12.2012, 19:07  [ТС]
Ребята, в чем ошибка? СЛАУ неправильно решается. Код в посте выше.
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
23.12.2012, 20:09
а сходимость метода проверял
0
4 / 0 / 2
Регистрация: 07.12.2009
Сообщений: 39
23.12.2012, 20:31  [ТС]
Нет, но методом гаусса правильно решается данная система, но вот по методу Гаусса-Зейделя по этому коду решает, но корни "левые" выдаёт- проверка не сходится
0
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
18.02.2014, 09:01
Мне однажды понадобилось решать что-то подобное вот мой код

Visual Basic
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
Option Explicit
'
'    © FelixMacintosh
'
Public Enum F_GausNum
    [Преобразовать в гаусово число] = 0
    [Преобразовать в обычное число] = 1
End Enum
 
Const c1 = "Указанное число <0" & vbCrLf & "Либо число превысело модуль", c11 = -100
 
Private Type TDel
    Result As Double
    Ost As Double
End Type
 
Private Sub Form_Activate()
    '
    '   Проверка
    '
    Dim f&: ReDim l(100)
    For f = 0 To 100
        l(f) = f
    Next
    l = GausList(l, [Преобразовать в гаусово число])
End Sub
 
Private Function Del(Arg#, Dlt#) As TDel
    'Функция деления
    'Возвращаемое значение: структура <TDel>
    With Del
        .Result = Fix(Arg / Dlt)
        On Error GoTo 1
        .Ost = Arg Mod Dlt
        Arg = .Result
        Exit Function
1
        .Ost = Arg - (.Result * Dlt)
        Arg = .Result
    End With
End Function
 
Private Function ErrPart(ByVal Exp As Boolean, ByVal Descr$, ByVal Num&)
    If Exp Then Err.Description = Descr: Err.Number = Num: Err.Raise Num
End Function
 
Function GausNum#(ByVal Modul#, ByVal Num#, Flag As F_GausNum)
    'Описание: Возврат числа так, как если бы числа модуля, распологались от центра к переферии
    'Arg: Модуль // Число // Флаги преобразования
    Dim d#, n#, n1&
    ErrPart Not (Num >= 0 And Num < Modul), c1, c11
 
    d = Del(Modul - 1, 2).Result
    n = Del(Modul, 2).Ost
    On Flag GoTo 1
 
    n1 = Not n And 1
    If Num > d - n Then GausNum = (Num - d - n1) * 2 + n1 Else _
    GausNum = (d - Num) * 2 - n
    Exit Function
1 'Flag = [Преобразовать в обычное число]
    With Del(Num, 2)
        On n GoTo 2
        If .Ost Then GausNum = d + .Result + 1 Else GausNum = d - .Result
        Exit Function
2
        If .Ost Then GausNum = (d - 1) - .Result Else GausNum = d + .Result
        Exit Function
    End With
 
End Function
 
 
Public Function GausList(List As Variant, Flag As F_GausNum) As Variant
    'Описание: Гаусовое построение списка
    'Arg: Список // Флаги преобразования
    Dim u&, m&, f&, v
    u = UBound(List)
    m = u + 1
    v = List
    For f = 0 To u
        v(f) = List(GausNum(m, f, Flag))
    Next
    GausList = v: Erase v
End Function
Вложения
Тип файла: rar Gaus.rar (13.3 Кб, 52 просмотров)
0
 Аватар для Alex77755
11523 / 3810 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
18.02.2014, 09:07
Цитата Сообщение от Extremo Посмотреть сообщение
Ребята, в чем ошибка? СЛАУ неправильно решается. Код в посте выше.
Однозначно в этом!
теорию по данному методу вообще не читал, ибо нет необходимости
1
 Аватар для Alex77755
11523 / 3810 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
18.02.2014, 09:13
Если нужно только решить, то вот решебник
Вложения
Тип файла: rar kursovaya.rar (153.5 Кб, 104 просмотров)
1
 Аватар для Alex77755
11523 / 3810 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
18.02.2014, 09:16
Данные берёт из файла рядом
Вложения
Тип файла: txt matrix.txt (92 байт, 52 просмотров)
1
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
18.02.2014, 10:01
Тот студент, скорее давно уже провалился на экзаменах,
а вам спасибо, изучу ваши файлы из чисто академического интереса

Жаль что всё откомпилированно без всяких описаний
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.02.2014, 10:01
Помогаю со студенческими работами здесь

Решение СЛАУ 6 порядка методом Якоби
Решить СЛАУ 6 порядка методом Якоби, можете подсказать как это сделать?

Система линейных уравнений. Решение методом Гаусса
Доброго времени суток, нужна не большая помощь Мне нужно сделать 4 линейных уравнения, нашел код, но он на 5 линейных уравнений, меняю...

Система линейных уравнений. Решение методом Гаусса
Доброго времени суток. Сегодня столкнулся с проблемой. Лазил на форуме, находил решения, но все равно не верно получается... Вполне...

Решение системы уравнений методом Гаусса и ошибка переполнения (Overflow)
Нужно было составить прогу решения системы уравнений методом Гаусса, выдаёт эту ошибку в выделенной сточке: Private Sub...

Решение СЛАУ методом Зейделя (Гаусса-Зейделя) с заданной матрицей
ребята, помогите написать на си, решение слау методом Зейделя(Гаусса-Зейделя) с заданной матрицей


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
Реализация конвейеров машинного обучения с Python и Scikit-learn
AI_Generated 23.04.2025
Мир данных вокруг нас растёт с каждым днём, и умение эффективно обрабатывать информацию стало необходимым навыком. Специалисты по машинному обучению ежедневно сталкиваются с задачами предобработки. . .
Контроллеры Kubernetes Ingress: Сравнительный анализ
Mr. Docker 23.04.2025
В Kubernetes управление входящим трафиком представляет собой одну из ключевых задач при построении масштабируемых и отказоустойчивых приложений. Ingress — это API-объект, который служит вратами. . .
Оптимизация кода Python с Cython и Numba
py-thonny 23.04.2025
Python прочно обосновался в топе языков программирования благодаря своей простоте и гибкости. Разработчики любят его за читабельность кода и богатую экосистему библиотек. Но у этой медали есть и. . .
Микросервис на Python с FastAPI и Docker
ArchitectMsa 23.04.2025
В эпоху облачных вычислений и растущей сложности программных продуктов классическая монолитная архитектура всё чаще уступает место новым подходам. Микросервисная архитектура становится фаворитом. . .
Создаем веб-приложение на Vue.js и Laravel
Reangularity 23.04.2025
Выбор правильного технологического стека определяет успех веб-проекта. Laravel и Vue. js формируют отличную комбинацию для создания современных приложений. Laravel — это PHP-фреймворк с элегантным. . .
Максимальная производительность C#: Span<T> и Memory<T>
stackOverflow 22.04.2025
Мир высоконагруженных приложений безжалостен к неэффективному коду. Каждая миллисекунда на счету, каждый выделенный байт памяти может стать причиной падения производительности. Разработчики на C#. . .
JWT аутентификация в Java
Javaican 21.04.2025
JWT (JSON Web Token) представляет собой открытый стандарт (RFC 7519), который определяет компактный и самодостаточный способ передачи информации между сторонами в виде JSON-объекта. Эта информация. . .
Спринты Agile: Планирование, выполнение, ревью и ретроспектива
EggHead 21.04.2025
Спринты — сердцевина Agile-методологии, позволяющая командам создавать работающий продукт итерационно, с постоянной проверкой гипотез и адаптацией к изменениям. В основе концепции спринтов лежит. . .
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров
Programma_Boinc 21.04.2025
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров. 3 марта 2025 года, в результате обобщенного поиска простых чисел Ферма в PrimeGrid был найден. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru