Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Решение с.л.у. методом простой итерации 
:(
    Опции темы
Ivan12345
Дата 27.10.2015, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 27.10.2015

Репутация: нет
Всего: нет



Постановка задачи: Дана система линейных уравнений
A11*x1+A12*x2+A13*x3+A14*x4=B1
A21*x1+A22*x2+A23*x3+A24*x4=B2
A31*x1+A32*x2+A33*x3+A34*x4=B3
A41*x1+A42*x2+A43*x3+A44*x4=B4
Найти приближенное решение с точностью е.
Метод простой итерации
Проверка условия сходимости
|A11|>|A12|+|A13|+|A14|
|A22|>|A21|+|A23|+|A24|
|A33|>|A31|+|A32|+|A34|
|A44|>|A41|+|A42|+|A43|
Выбор начального приближения
x10=0 x20=0 x30=0 x40=0
x1i+1=(B1-( A12*x2i+A13*x3i+A14*x4i))/ A11
x2i+1=(B2-( A21*x1i+A23*x3i+A24*x4i))/ A22
x3i+1=(B3-( A31*x1i+A32*x2i+A34*x4i))/ A33
x4i+1=(B4-( A41*x1i+A42*x2i+A43*x3i))/ A44
|x1i+1-x1i|<ε
|x2i+1-x2i|<ε
|x3i+1-x3i|<ε
|x4i+1-x4i|<ε


Матрица:
(3 0 1 1 ) ┃ 1
(2 10 3 5)┃ 3
(3 0 12 5) ┃-4
(4 5 4 16) ┃ -7
PM MAIL   Вверх
feodorv
Дата 28.10.2015, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Я не поняла, Вы хвастаетесь заданием? Если так, то да, задание хорошее)))

ЗЫ Для полноты картины нужно ещё заценить значение ε.


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
feodorv
Дата 28.10.2015, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(Ivan12345 @  27.10.2015,  21:05 Найти цитируемый пост)
(2 10 3 5)┃ 3
Крайне неудачная матрица, так как условие
Цитата(Ivan12345 @  27.10.2015,  21:05 Найти цитируемый пост)
|A22|>|A21|+|A23|+|A24|
нарушается.


Набросал тупейшее решение на C (Вы жеж посчитали, что указывать язык программирования - это ниже Вашего достоинства):
Код

#include <stdio.h>
#include <math.h>

int main()
{
  /* Матрица */
  double A11 = 3, A12 = 0, A13 = 1, A14 = 1;
  double A21 = 2, A22 = 10.0001, A23 = 3, A24 = 5;
  double A31 = 3, A32 = 0, A33 = 12, A34 = 5;
  double A41 = 4, A42 = 5, A43 = 4, A44 = 16;
  double B1 = 1, B2 = 3, B3 = -4, B4 = -7;
  /* Выбор начального приближения */
  double x1 = 0, x2 = 0, x3 = 0, x4 = 0;
  double eps = 0.0001;
  unsigned int count = 0;

  /* Проверка условия сходимости */
  if( (fabs(A11) > fabs(A12) + fabs(A13) + fabs(A14)) &&
      (fabs(A22) > fabs(A21) + fabs(A23) + fabs(A24)) &&
      (fabs(A33) > fabs(A31) + fabs(A32) + fabs(A34)) &&
      (fabs(A44) > fabs(A41) + fabs(A42) + fabs(A43)) )
    printf( "Good!\n" );
  else
  {
    printf( "Bad!\n" );
    return -1;
  }

  /* Метод простой итерации */
  while( 1 )
  {
    double x1n = (B1 - (A12*x2 + A13*x3 + A14*x4)) / A11;
    double x2n = (B2 - (A21*x1 + A23*x3 + A24*x4)) / A22;
    double x3n = (B3 - (A31*x1 + A32*x2 + A34*x4)) / A33;
    double x4n = (B4 - (A41*x1 + A42*x2 + A43*x3)) / A44;

    if( fabs(x1n-x1) < eps && fabs(x2n-x2) < eps &&
        fabs(x3n-x3) < eps && fabs(x4n-x4) < eps )
    {
      printf( "Solution: x1 = %f, x2 = %f, x3 = %f, x4 = %f\n", x1n, x2n, x3n, x4n);
      break;
    }

    x1 = x1n;
    x2 = x2n;
    x3 = x3n;
    x4 = x4n;
    printf( "Iteration %u: x1 = %f, x2 = %f, x3 = %f, x4 = %f\n", ++count, x1, x2, x3, x4);
  }

  return 0;
}



--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
xoptov
Дата 28.10.2015, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 16.2.2008

Репутация: нет
Всего: нет



Походу универкое или институтское задание, двоешники не хотят сами думать

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
Sajtran
Дата 28.10.2015, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 15.10.2008
Где: Мегион

Репутация: нет
Всего: 2



Код

Проверка условия сходимости
|A11|>|A12|+|A13|+|A14|
|A22|>|A21|+|A23|+|A24|
|A33|>|A31|+|A32|+|A34|
|A44|>|A41|+|A42|+|A43|

может вы что-то путаете? они же заданы у вас

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0791 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.