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

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

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

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

31.10.2010, 00:32. Просмотров 6453. Ответов 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2010, 00:32     Метод Зейделя, работает неправильно
Посмотрите здесь:

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

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

Метод Зейделя в С++ - C++
всем доброго времени суток... у меня такая проблема, есть программа по решению систем линейных уравнений методом Зейделя написали мне...

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
31.10.2010, 00:34     Метод Зейделя, работает неправильно #2
Цитата Сообщение от Artishok Посмотреть сообщение
и какую функцию можно использовать для закрытия программы?
C++
1
return
Artishok
ЧакЭ одобряЭ
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
31.10.2010, 01:00  [ТС]     Метод Зейделя, работает неправильно #3
нет идей почему считает криво?
siger
13 / 13 / 1
Регистрация: 27.02.2010
Сообщений: 46
31.10.2010, 02:03     Метод Зейделя, работает неправильно #4
Ограничения типа double?
Artishok
ЧакЭ одобряЭ
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
31.10.2010, 13:06  [ТС]     Метод Зейделя, работает неправильно #5
Цитата Сообщение от siger Посмотреть сообщение
Ограничения типа double?
я взял вещественный тип т.к. приближения дробные могут быть
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2010, 13:39     Метод Зейделя, работает неправильно
Еще ссылки по теме:

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

Метод Зейделя - C++
Я написал прогу по методу Зейделя, так вот при матрице 3х3 выдает после 7 итерации правильный ответ) а при матрице 4х4 уже на второй...

Метод Зейделя: - C++
Здравствуйте, у меня получается на данный момент X1 := -8.32587e+307 X2 := -inf X3 := inf я скопировал сам метод зейделя с...

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

СЛАУ метод Зейделя - C++
Решить СЛАР методом Зейделя вида АХ=В с точностью до 0,0001. Пример на рисунке ниже что не могу не как реализовать нормально. Точнее...

Метод Гаусса-Зейделя - C++
Здравствуйте. Задание дали нормальное такое) Вообще не понимаю что хотят. Объясните пожалуйста языком для домохозяек или же есть у кого...


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

Или воспользуйтесь поиском по форуму:
KuKu
1557 / 1035 / 77
Регистрация: 17.04.2009
Сообщений: 2,980
31.10.2010, 13:39     Метод Зейделя, работает неправильно #6
C++
1
int e; //точность
- это нормально, что точность целое число ?
Yandex
Объявления
31.10.2010, 13:39     Метод Зейделя, работает неправильно
Ответ Создать тему
Опции темы

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