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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
KlounAda
0 / 0 / 0
Регистрация: 08.05.2013
Сообщений: 3
#1

Решение систем линейных алгебраических уравнений - C++

03.06.2013, 19:57. Просмотров 380. Ответов 0
Метки нет (Все метки)

Вот есть СЛАУ методом Зейделя. Размер системы n параметр. n <= 10. над переделать, чтоб был метод квадратных корней и n<=12 помогите плз

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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <iostream>
using namespace std;
void main()
{
    setlocale(LC_ALL,"RUSSIAN");
   float a[5][5]={                             //левая часть СЛАУ
         {0.945,-0.5882,0,0,0},
         {-0.017,0.9806,-0.0114,0,0},
         {0,-0.0153,0.9876,-0.0107,0},
         {0,0,-0.1111,0.9188,-0.5},
         {0,0,0,-0.75,0.9378},
         };
   float d[5]={50,-15.2371,-14.2308,0,-48};    //правая часть СЛАУ
   float x[5]={0};                             //массив неизвестных значений
   float b[5][5]={0};
   float g[5]={0};
   float x1[5]={0};
   int i,j;
   int k;
   int y=0;
   float z;
   float xk[5]={0};
   float e;                                  //погрешность
   
   k=0;
   printf("Исходная матрица, являющаяся правой частью СЛАУ:\n\n");
   for(i=0;i<5;i++)
   {
      for(j=0;j<5;j++)
     printf("%.4f   ", a[i][j]);
      printf("\n");
   }
   printf("\nПравая часть СЛАУ:\n\n");
   for(i=0; i<5; i++)
      printf("%.4f  ", d[i]);
   printf("\n\n");
   printf("Введите требуемую погрешность нахождения неизвестных:");
  cin>>e;
   printf("\t%.5f\n\n", e);
   //Первоначальные преобразования
   for(j=0;j<5;j++)
   {
      g[j]=d[j];
      x[j]=g[j];
      x1[j]=x[j];
      for(i=0;i<5;i++)
      {
     if(i==j)   b[j][i]=1-a[j][i];
     else       b[j][i]=-a[j][i];
      }
   }
   printf("Преобразованная матрица:\n\n");
   for(i=0; i<5; i++)
   {
      for(j=0; j<5; j++)
         printf("%.4f   ", b[i][j]);
      printf("\n");
   }
   printf("\n");
   //Организация итерационного процесса (метод Зейделя)
   do
   {
      y=0;
      k=k+1;
      printf("Итерация номер %d\t\n", k);
      for(j=0;j<5;j++)
      {
     xk[j]=g[j];
     for(i=0;i<5;i++)
     {
        xk[j]+=b[j][i]*x1[i];
     }
     x1[j]=xk[j];
      }
      //проверка соответствия значений неизвестных заданной точности
      for(j=0; j<5; j++)
      {
         
     z=fabs(xk[j]-x[j]);
     printf("x[%d]: %.4f, xk[%d]: %.4f\n", j, x[j], j, xk[j]);
         printf("|x[%d]-xk[%d]|=%.4f", j, j, z);
     x[j]=xk[j];
     if(z<e)
     {
        y=y+1;
     }
         printf("\n");
      }
      printf("\n");
   }
   while(y!=5);
   printf("Число итераций:\t");
   printf("%d\n\n", k);
   //Printing the result
   printf("Результат, найденный с погрешностью %.5f:\n\n", e);
   for(i=0;i<5;i++)
   {
       printf("%.4f   ", x[i]);
   }
   _getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2013, 19:57     Решение систем линейных алгебраических уравнений
Посмотрите здесь:

Решение систем алгебраических уравнений - C++
Всех приветствую и желаю доброго дня! Нуждаюсь в помощи по разработке алгоритма задания на языке С++ Необходимо написать программу для...

Решение систем линейных уравнений - C++
Решить СЛУ \begin{cases} &amp; \text{1.2x+2.4y-3.8z=\alpha } \\ &amp; \text{-7x-1.3y=1.27 } \\ &amp; \text{3.3x+0.3y-5z=5.82 } \end{cases} \alpha =...

Решение систем линейных уравнений методом Гаусса - C++
Такая вот проблема вышла, не работает один случай и никак не могу найти - в чем ошибка. Возьмем к примеру такое уравнение: 0 0 0 1 2 ...

Решение систем линейных уравнений различными методами - C++
#include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &quot;cmath&quot; using namespace std; void input(float**A,float*B,float**C,float**R,int...

Написать решение систем линейных уравнений методом Крамера - C++
Требуеться написать решение систем линейных уравнений методом крамера. Входные данные беруться с файла или с клавиатуры(выбирает...

Система линейных алгебраических уравнений - C++
Решить систему линейных алгебраических уравнений. Метод решения выбрать самостоятельно. Коэффициенты и свободные члены линейного уравнения...

Система линейных алгебраических уравнений - C++
помогите исправить ошибки! #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;iomanip&gt; using namespace std; ...

Система линейных алгебраических уравнений - C++
Помогите пожалуйта с програмой вопрос жизни и смерти!!! Мне нужно написать програму до завтра! Програма должна выводить решения всеми...

Решить систему линейных алгебраических уравнений - C++
Решить CЛАУ 2A^tX=Y^2,где |2 1 5 6| |3| A= |5 2 2 6| Y= |1| |2 2 1 2| |2| |1 3 3 1|...

Плохо обусловленные системы линейных алгебраических уравнений - C++
Добрый вечер! Ребят, может сталкивался кто с такими методами решения плохо обусловленных систем линейных алгебраических уравнений: --...

Численные методы решения линейных алгебраических уравнений - C++
Тема -ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ Как написать в программе СИ++ x*tgx-1/3=0 с интервалом !! ...

Методом Гаусса решить систему n линейных алгебраических уравнений - C++
Помогите пожалуйста написать на с++ методом Гаусса решить систему n линейных алгебраических уравнений. Отсюда нашла именно ту тему там...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru