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

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

Войти
Регистрация
Восстановить пароль
 
medok94
Сообщений: n/a
#1

СЛАУ методом итераций - C++

20.11.2012, 04:44. Просмотров 671. Ответов 1
Метки нет (Все метки)

Помогите напиать код для решения СЛАУ - [IMG]http://s60.***********/i167/1211/5b/975c52a87259.png[/IMG] методом итераций. Хочу понять как его написать... сам пробовал но вышло плохо ибо выводит неправильные значения, вот код:
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
#include <conio.h>                                      
#include <stdio.h>   
#include <windows.h> 
#include <iostream> 
#include <math.h>
using namespace std;
int main()
{
int itr,  k;
const int m=3;
double   c_old[m], temp, eps=0.001;
double a[m][m]={{5, 1, 2},
                {1, 4, 1},
                {1, 1, 3},};
double b[m] = {10, 7, 8};
double c[m]={0,0,0};
itr=0;
do {
    itr++; 
    for (k=0; k<m; k++)
       c[0]=(b[1]-a[0][1]*c[1]-a[0][2]*c[2])/a[0][0];
    c[1]=(b[1]-a[1][0]*c[0]-a[1][2]*c[2])/a[1][1];
    c[2]=(b[2]-a[2][0]*c[0]-a[2][1]*c[1])/a[2][2];
    temp=0;
    for (k=0; k<m; k++)
        temp+=fabs(c_old[k]-c[k]);   } 
while (temp<eps);
cout << "Количество итераций:" << itr << endl;     
for(int j=0; j < 3; j++)
        {               printf("x%d= %lf ", j+1,c[j]);              } 
 
    system("PAUSE");
   
     return 0;
}
Буду благодарен за помощь!!!
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2012, 04:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос СЛАУ методом итераций (C++):

Решение СЛАУ методом простых итераций. - C++
#include &lt;iostream.h&gt; #include &lt;iomanip.h&gt; #include &lt;math.h&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; #define Eps pow(10,-8) void...

Решение методом простых итераций СЛАУ - C++
3 2 1 4 1 1 -1 1 1 -2 1 3 то есть 4, 1, 3 - это b а все остальные числа - это кэфи при иксах. Нужна срочная помощь! Ребята,...

Решить СЛАУ из 4-х уравнений методом итераций - C++
Ребята,прошу вас,кому не сложно,мне надо решить слау методом итераций на с++,весь интернет облазил,есть только метод простых итераций.Вот...

Решение СЛАУ методом простых итераций - C++
Нужно решить слау (4 на 4), значения матрица и вектор вводится с клавиатуры, также нужно ввести епсилон (точность, до которой необходимо...

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

Решение СЛАУ методом простых итераций, задача решена, только написать код осталось - C++
решить СЛАУ с точностью е=10 в степени(-4) 4*x1-x2-x3=2 x1+5*x2-2*x3=4 x1+x2+4*x3=6 Система из 3-х уравнений, с 3...

1
medok94
Сообщений: n/a
21.12.2012, 01:41 #2
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
#include <conio.h>                                      
#include <stdio.h>   
#include <windows.h> 
#include <iostream> 
#include <math.h>
using namespace std;
int main()
{
setlocale(LC_ALL,"Russian");
int itr,  k;
const int m=3;
long double   temp;
long double a[m][m]={   {5, 1, 2},
                        {1, 4, 1},
                        {1, 1, 3},
};
long double b[m] = {10, 7, 8};
long double c[m]={0,0,0};
itr=0;
long double c_old[m] = {0,0,0};
 
do {   
    itr++; 
    for (k=0; k<m; k++)
          {
    c[0]=(b[0]-a[0][1]*c[1]-a[0][2]*c[2])/a[0][0];
    c[1]=(b[1]-a[1][0]*c[0]-a[1][2]*c[2])/a[1][1];
    c[2]=(b[2]-a[2][0]*c[0]-a[2][1]*c[1])/a[2][2];
    
        }   
 //x1:=(b1-a[1,2]*x2-a[1,3]*x3)/a[1,1];
 //x2:=(b2-a[2,1]*x1-a[2,3]*x3)/a[2,2];
 //x3:=(b3-a[3,1]*x1-a[3,2]*x2)/a[3,3];
 
    for(int j=0; j <3 ; j++) 
    printf("x%d = %.10lf\n", j+1,c[j]);
    cout<<endl;
    temp=0;
    for (k=0; k<m; k++)    temp+=fabs(c_old[k]-c[k]); 
    for (k=0; k<m; k++)   c_old[k]=c[k]; 
} 
while (temp>0.001);
 
cout << "Кiлькiсть iтерацiй:" << itr << endl;     
for(int j=0; j <3 ; j++) printf("x%d= %.10lf\n", j+1,c[j]); 
system("PAUSE");
   
     return 0;
}
работающий код
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2012, 01:41
Привет! Вот еще темы с ответами:

Метод простых итераций для СЛАУ - C++
Здравствуйте! Пытаюсь реализовать метод простых итераций. Все функции, которые работают нормально, кроме самих итераций. Не могу понять,...

Метод простых итераций для СЛАУ - C++
Помогите пожалуйста! Нужно реализовать метод простых итераций для решения СЛАУ дана вот такая матрица -0.95 -0.06 -0.12 0.14 ...

Метод простых итераций для СЛАУ - C++
Доброго времени суток всем!!! решаю СЛАУ методом простых итераций, проблема вот в чем: не могу понять, как сделать расчет по к-ым...

Метод простых итераций для СЛАУ - C++
Прошу помочь с написанием МПИ для СЛАУ на C. Каким образом выразить из AX=b ур-е X=BX+C, в которое подставлять начальное приближение? И по...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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