С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 28.12.2017
Сообщений: 5
1

Реализация метода Зейделя

29.05.2018, 17:11. Показов 1182. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите реализовать метод Зейделя,используя концепции ООП.Или хотя бы подкиньте идеи.Использовать язык С++.Срочно!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.05.2018, 17:11
Ответы с готовыми решениями:

Функция, проверяющая сходимость метода Зейделя
Напишите пожалуйста функцию, проверяющую сходимость метода Зейделя. Последний кусок программы, не...

Фрагмент из метода Зейделя работает почему-то неправильно
Значения на первой итерации высчитывает верно x = -0.8, y = -2.05, а последующие итерации выводит с...

Реализация венгерского метода
#include <iostream> #include <vector> #include <iterator> #include <algorithm> int n; vector <...

Реализация метода Add
Доброго времени суток, У меня такой вопрос: не могли бы вы написать пример реализации метода add в...

4
Заклинатель змей
705 / 560 / 219
Регистрация: 30.04.2016
Сообщений: 2,606
29.05.2018, 19:42 2
Vladislav577, не вижу смысла в ООП, разве что класс матриц создавать. Это на С#, но вроде просто

https://github.com/DobroAlex/N... _Method.cs
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
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
/*https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%93%D0%B0%D1%83%D1%81%D1%81%D0%B0_%E2%80%94_%D0%97%D0%B5%D0%B9%D0%B4%D0%B5%D0%BB%D1%8F_%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B_%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D1%8B%D1%85_%D1%83%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B9*/
using System;
 
namespace GauSSSeidel_Method
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Input matrix size:");
            int n = int.Parse(Console.ReadLine());
            Console.WriteLine("Input calculation accuracy:");
            double eps = double.Parse(Console.ReadLine(), System.Globalization.CultureInfo.InvariantCulture);
            double[,] A = new double[n, n];
            Console.WriteLine("Input matrix A:");
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    A[i, j] = double.Parse(Console.ReadLine(), System.Globalization.CultureInfo.InvariantCulture);
                }
            }
            double[] b = new double[n]; //Столбец правых частей
            Console.WriteLine("Input The right-hand column:");
            for (int i = 0; i < b.Length;i++)
            {
                b[i] = double.Parse(Console.ReadLine(), System.Globalization.CultureInfo.InvariantCulture);
            }
            double[] x = new double[n]; //текущее
            double[] p = new double[n]; //и предыдущее решение
            Console.WriteLine("Input initial approximation of the decision column:"); //начальное приближение обычно можно делать нулевым
            for (int i = 0; i < x.Length; i++)
            {
                x[i] = double.Parse(Console.ReadLine(), System.Globalization.CultureInfo.InvariantCulture);
            }
            do
            {
                for (int i = 0; i < n;i++)
                {
                    p[i] = x[i];
                }
                for (int i = 0; i < n;i++)
                {
                    var tmp = 0.0;
                    for (int j = 0; j < i;j++)
                    {
                        tmp += A[i, j] * x[j];
                    }
                    for (int j = i + 1; j < n;j++)
                    {
                        tmp += A[i,j] * p[j];
                    }
                    x[i] = (b[i] - tmp) / A[i, i];
                }
            } while (!IsConverege(x, p, eps));
            Console.WriteLine("Answer is:");
            for (int i = 0; i < n;i++)
            {
                Console.WriteLine("x"+i+1+"="+x[i]);
            }
        }
        public static bool IsConverege(double [] xk , double [] xkp, double eps)
        {
            double norm = 0;
            for (int i = 0; i < xk.Length; i++)
            {
                norm += (xk[i] - xkp[i]) * (xk[i] - xkp[i]);
            }
            if (Math.Sqrt(norm) >= eps)
            {
                return false;
            }
            return true;
        }
 
    }
}
1
1718 / 567 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
29.05.2018, 21:10 3
Цитата Сообщение от DobroAlex Посмотреть сообщение
Это на С#, но вроде просто
DobroAlex, дык и перенесите данную тему в Шарп. К плюсам по содержанию она никакого отношения не имеет, акромя того, что ее создали в данной ветке. Здесь и так уже пишут на всех наречиях Си и старообрядческих плюсах. Пора бы уже создавать ветку "C++11/C++14 и выше".
0
Заклинатель змей
705 / 560 / 219
Регистрация: 30.04.2016
Сообщений: 2,606
30.05.2018, 18:48 4
Manowar, создано в крестах, предполагается, что тсу надо на крестах
0
Manowar
30.05.2018, 19:14     Реализация метода Зейделя
  #5

Не по теме:

Цитата Сообщение от DobroAlex Посмотреть сообщение
тсу надо на крестах
Ну надо, так пусть ждет.

0
30.05.2018, 19:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.05.2018, 19:14
Помогаю со студенческими работами здесь

Реализация метода Ньютона
Попросили спросить в чем ошибка в коде.Пытались реализовать Метод Ньютона для решения уравнения ...

Нужна реализация метода Филона
:cry:

Реализация метода с private секции
Добрый вечер, #pragma once #include &lt;string&gt; class Foo { private:...

Реализация метода штрафных функций
Здравствуйте,нужна очень программа на С++ метода штрафных функции с использование метода Фибоначчи...


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

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