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

Над переделать СЛАУ - C++

Восстановить пароль Регистрация
 
KlounAda
0 / 0 / 0
Регистрация: 08.05.2013
Сообщений: 3
04.06.2013, 22:02     Над переделать СЛАУ #1
Вот есть СЛАУ методом Зейделя. Размер системы 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
04.06.2013, 22:02     Над переделать СЛАУ
Посмотрите здесь:

C++ Решение слау.
Решение специфичной СЛАУ C++
C++ Решение СЛАУ
C++ СЛАУ методом итераций
C++ решение Слау
C++ СЛАУ
СЛАУ методом Гаусса C++
C++ Решение СЛАУ

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

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

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