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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 51, средняя оценка - 4.90
Artishok
ЧакЭ одобряЭ
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
#1

Метод Зейделя, работает неправильно - C++

31.10.2010, 00:32. Просмотров 6468. Ответов 5
Метки нет (Все метки)

сообственно проблема в том что считает немного неточно.
и какую функцию можно использовать для закрытия программы?(exit не работает)
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
#include <iostream.h>
#include <math.h>
#include <stdlib.h>
 
int main()
{
    int n;
    cout<<"Number of equatations?"<<endl;
    cin>>n;
    double v[n];//вектор свободных членов
    double a[10][10];//матрица коэффициентов
    double p[n];//массив приближений p[i]-для i-того корня
    double x[n];//ответы
    cout<<"Write kof"<<endl;//коэф.
    for(int i=0;i<n;i++)
    {
     for(int j=0;j<n;j++)
      cin>>a[i][j];
    }
     cout<<"Write free memebers"<<endl;//свободные члены
     for(int i=0;i<n;i++)
      cin>>v[i];
     cout<<"Array of ~"<<endl;
     for(int i=0;i<n;i++)
     {p[i]=v[i]/a[i][i];
     cout<<p[i]<<" ";}
     cout<<endl;
     int e; //точность
     cout<<"Write e"<<endl;
     cin>>e;
     double k;
     double s;
     int i=0,j=0;
     /*for(i=0;i<n;i++)
     {
        s=0;
        for(j=0;j<n;j++)
         if (j!=i) s+=fabs(a[i][j]);
         if (s>=(fabs(a[i][j])))
         {
            cout<<"Ne shoditsia"<<endl;
            goto label1;
         }
     }*/
     do //высчитываем комбинации приближений
     {  
         k=0;
         for(i=0;i<n;i++) //для каждой переменной
        {
          s=0;//основа основ метода итераций
           for(j=0;j<n;j++)
            if (i!=j)
            //умножается коэффициент при элементе и его приближение
            s+=a[i][j]*p[j];//каждый элемент получается сложением
            int pr=x[i]; //создаем новую переменную в которую записываем значение приближенного до этого x[i]
            //сумму переносим в праву часть=>вычитаем из свободного члена и делим на коэф.при x приближения
            x[i]=(v[i]-s)/a[i][i]; //новое значение приближения
            if (k<fabs(pr-x[i])) k=fabs(pr-x[i]);   
        }
     }
     while(k<e); //условие окончания итерационного цикла метода зейделя
     for (i=0;i<n;i++)
     cout<<x[i]<<" ";
     label1:cout<<"END"<<endl;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2010, 00:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Метод Зейделя, работает неправильно (C++):

Фрагмент из метода Зейделя работает почему-то неправильно - C++
Значения на первой итерации высчитывает верно x = -0.8, y = -2.05, а последующие итерации выводит с ошибкой. double A =...

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

неправильно работает метод класа - C++
подскажите пожалуйста написал часть кода, он ище далек от окончания, но что у меня щас уже не нравильно работает, мой метод класса...

Проверьте задачку по циклам, неправильно работает. [думаю что неправильно] - C++
Спасибо что решили зайти. Задание выгладит так: http://*******/PW95p А результат выплнения: http://*******/KwhuS #include...

Метод итераций и метод Зейделя - C++
Здравсвуйте программисты! Спасибо всем за помощь в предыдущих темах, осталась последняя лаба, которую нужно решить по предмету &quot;Численные...

метод Зейделя - C++
Ребят помогите пожалуйста, а то зачот простаивает)Нужна программка реализующая метод Зейделя(или Зейзеля препод так написал что...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
PointsEqual
ниначмуроФ
835 / 519 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
31.10.2010, 00:34 #2
Цитата Сообщение от Artishok Посмотреть сообщение
и какую функцию можно использовать для закрытия программы?
C++
1
return
1
Artishok
ЧакЭ одобряЭ
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
31.10.2010, 01:00  [ТС] #3
нет идей почему считает криво?
0
siger
13 / 13 / 1
Регистрация: 27.02.2010
Сообщений: 46
31.10.2010, 02:03 #4
Ограничения типа double?
0
Artishok
ЧакЭ одобряЭ
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
31.10.2010, 13:06  [ТС] #5
Цитата Сообщение от siger Посмотреть сообщение
Ограничения типа double?
я взял вещественный тип т.к. приближения дробные могут быть
0
KuKu
1558 / 1036 / 78
Регистрация: 17.04.2009
Сообщений: 2,985
31.10.2010, 13:39 #6
C++
1
int e; //точность
- это нормально, что точность целое число ?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2010, 13:39
Привет! Вот еще темы с ответами:

Метод Зейделя - C++
решить систему нелинейных уравнений Методом зейделя:

метод Зейделя. c++ - C++
В цикле do while есть ошибка, из-за неё программа не правильно считает Xold и Xnew. Помогите, пожалуйста, найти ошибку... #pragma once ...

Метод Зейделя - C++
Ребята, каждый из вас уже делал лабы по матрицам. Если у кого-то есть готовая лаба по методу Зейделя, прошу, напишите ее тут и желательно с...

Метод Зейделя - C++
ошибка найдена. тема закрыта


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
31.10.2010, 13:39
Ответ Создать тему
Опции темы

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