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

Написать программу для вычисления СЛАУ методом простой итерации с использованием динамических массивов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Построить таблицу истинности http://www.cyberforum.ru/cpp-beginners/thread1143829.html
Здравствуйте! В принципе задача фигня, единственное с чем у меня загвоздка, это в том что в выражении могут быть скобки, следовательно считать все по очереди нельзя, может есть у кого как распарсить строку со скобками?
C++ Посодействуйте в доработке программы с функциями-шаблонами Для работы с двумерными массивами арифметических типов данных разработать шаблоны ввода и вывода массива, а также шаблон для решения задачи: - Подсчитать количество элементов, не попадающих в заданный интервал Есть наработки, шаблоны ввода и вывода вроде получились, и как сделать саму задачу понимаю, но как решить задачу с помощью шаблонов? Подскажите, пожалуйста. #include... http://www.cyberforum.ru/cpp-beginners/thread1143820.html
Существует ли генератор кода С++? C++
Всем привет! Стало интересно следующее: существует ли генератор кода для С++? То есть я соединяю некие концепции какими-нибудь стрелочками, определяя их взаимосвязи, нажимаю кнопочку и генерируется код на С++... :) И чтобы не интерфейс (как встроенная визуал студия), а программные модули. Есть ли такое?
Решение диф уравнений 2-ого порядка C++
Какие есть алгоритмы для решения диф уравнений 2-ого порядка, программно разумеется. И еще надо чтобы алгоритм поддавался распараллеливанию с помощью openMP. А то в гугле ни одного примера найти не смог...
C++ Перегрузка оператора << http://www.cyberforum.ru/cpp-beginners/thread1143803.html
Доброе время суток! Возникло осложнение с лабой. Нужно перегрузить оператор << так, чтобы при помощи него можно было копировать информацию с одного потока, в другой, связанных с файлом.С чего начать, подскажите? Класс здесь же не нужно создавать, так? просто функцию перед мейном написать
C++ Посоветуйте литературу Здравствуйте, пользователи cyberforum.ru. Искал в интернете вообщем не нашел. Вопрос, дайте мне сборник литературы, чтобы я мог выучить язык программирования, и писал на нем, как говорил на русском. Почитал, что нужно читать, Бьерна Страуструпа. А дальше C++0x и Boost. Ну вообщем, дайте мне сборник литературы. подробнее

Показать сообщение отдельно
andreyananas
 Аватар для andreyananas
17 / 17 / 5
Регистрация: 15.10.2013
Сообщений: 804
09.04.2014, 20:12     Написать программу для вычисления СЛАУ методом простой итерации с использованием динамических массивов

Нужно написать программу для вычисления СЛАУ методом простой итерации с использованием динамических массивов.

СЛАУ выглядит так:

http://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{cases}{a}_{11}{x}_{1}+{a}_{12}{x}_{2}+...+{a}_{1n}{x}_{n}={b}_{1} \\ {a}_{21}{x}_{1}+{a}_{22}{x}_{2}+...+{a}_{2n}{x}_{n}={b}_{2}  \\ .........................................................\\ {a}_{n1}{x}_{1}+{a}_{n2}{x}_{2}+...+{a}_{nn}{x}_{n}={b}_{n} \end{cases}

или в векторной форме:
AX=B
с каждого уравнения вычисляем http://www.cyberforum.ru/cgi-bin/latex.cgi?{x}_{i}(i=1...n) и получаем:
http://www.cyberforum.ru/cgi-bin/latex.cgi?{x}_{i}=\frac{1}{{a}_{11}}({b}_{1}-{a}_{12}{x}_{2}-{a}_{13}{x}_{3}-...-{a}_{1n}{x}_{n})

или в векторной форме:
http://www.cyberforum.ru/cgi-bin/latex.cgi?\bar{X}=F(\bar{X})

для которого можно использовать метод простой итерации. Метод заключается в том, что в правую часть подставляем какие то значения http://www.cyberforum.ru/cgi-bin/latex.cgi?{x}_{i}(i=1...n), получаем новые значения, какие опять подставляем в правую часть и т. д. То есть, на каждой итерации имеем предыдущие значения неизвестных http://www.cyberforum.ru/cgi-bin/latex.cgi?{xp}_{i}(i=1...n), какие подставляем в правую часть схемы и новые значения http://www.cyberforum.ru/cgi-bin/latex.cgi?{x}_{i}(i=1...n), какие получаем в левой части.

Вычислительную схему можно записать:
http://www.cyberforum.ru/cgi-bin/latex.cgi?x[i]=(b[i]-\sum_{j=1,j\neq i}^{n}(a[i][j]*xp[j]))/a[i][i], i=1...n

Начальное значение неизвестных можно вычислить:
xp[i]=b[i]/a[i][i]

после каждой итерации значение некоторого неизвестного меняется на величину:
http://www.cyberforum.ru/cgi-bin/latex.cgi?{delta}_{i}=\left| x[i]-xp[i]\right|
Вычисления можно остановить когда максимальная поправка
http://www.cyberforum.ru/cgi-bin/latex.cgi?prop={max}_{i}({delta}_{i})
будет меньше заданной точности http://www.cyberforum.ru/cgi-bin/latex.cgi?eps
По окончании итерации, вычисление всех новых значений http://www.cyberforum.ru/cgi-bin/latex.cgi?{x}_{i}, вычисление максимальной поправки http://www.cyberforum.ru/cgi-bin/latex.cgi?prop нужно переписать массив http://www.cyberforum.ru/cgi-bin/latex.cgi?x к массиву http://www.cyberforum.ru/cgi-bin/latex.cgi?xp.

Необходимым (но не достаточным) условием сходимости метода есть выполнения условия:

http://www.cyberforum.ru/cgi-bin/latex.cgi?\left|{a}_{ii} \right|>\left|\sum_{j=1,j\neq i}^{n}   {a}_{ij} \right|

Матрицу коэффициентов уравнения A, векторы В, Х, ХР реализуются как динамичные массивы.

п.с. помогите с программой (желательно с комментариями), заранее спс=)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru