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

Метод простых итераций для решения системы линейных уравнений - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ BGi Graphics.h http://www.cyberforum.ru/cpp-beginners/thread1147598.html
Программа: 1)выбираем, что рисуем(в консоли) - активная консоль 2)задаем параметры(в консоли)- активная консоль 3)создается окно initwindow(700,700); консоль перекрывается окном - активное окно 4)рисуется изображение на окне(консоль сзади) - активное окно 5)закрытие окна closegraph() по нажатию клавиши Enter или Esc; с активного окна на активную консоль 6)снова выбираем другой рисунок и...
C++ Написать программу, вычисляющую количество дней от начала года до введенной даты Помогите написать программа вычисляющую кол-во дней от начало года до введенной даты Учитывая ввел ли пользователь високосный год. http://www.cyberforum.ru/cpp-beginners/thread1147597.html
Составить функцию нахождения корня уравнения C++
Составить функцию нахождения корня уравнения x=f(x) методом итераций {x}_{n+1}=f({x}_{n}) , если заданы начальные значения корня {x}_{0} и точность значения корня | {x}_{n+1}-{x}_{n}| . Используя эту функцию, найти корни уравнений: x=e^\frac{x}{10} ({x}_{0}=0.5, \varepsilon ={10}^{-5}) {e}^{x}-2x-10=0 ({x}_{0}=1,\varepsilon ={10}^{-5})
Вычислить значение выражения C++
Составить программу, в которой вычислить z=s1+s2/k1*k2 , где s1,k1 и - сумма и количество положительных элементов массива Х ; и s2, k2- сумма и количество положительных элементов массива Y . Вычисление суммы и количества положительных элементов массива, его инициализацию, вывод элементов массива оформить в виде функций.
C++ Организовать функцию для вычисления суммы положительных элементов, расположенных на побочной диагонали матрицы http://www.cyberforum.ru/cpp-beginners/thread1147588.html
Составить программу, в которой создать динамический массив указателей для сохранения двумерного массива В с N × N целых чисел, организовать функцию для вычисления суммы положительных элементов, расположенных на побочной диагонали.
C++ Отобрать из текстового файла в бинарный информацию Здравствуйте. Нужно отобрать из текстового файла в бинарный информацию. Пожалуйста, подскажите как делать, с бинарными файлами вообще не знаком. К примеру, в текстовом файле нам дана перечень имен и нужно отобрать, только те, имена которых начинаются на И. Допустим, Ирина Валентина Катерина Инна Соответственно, выдает только Ирина и Инна. подробнее

Показать сообщение отдельно
proech
10 / 10 / 2
Регистрация: 10.07.2013
Сообщений: 150
14.04.2014, 01:06     Метод простых итераций для решения системы линейных уравнений
помогите найти ошибку в алгоритме
при вводе уравнения
x+y = 2
2x-y = 7
x = 2-y;
y = (7-2*x)/-1
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
 
double  FindRootsIteration()
    {
        
            double E; 
            int i=0,j = 0;
 
        std::cout<<"введите точность (10^-n)";
        std::cin>>E;
    //приравниваем    x ,y, z ...... к  0;
    //вычисляем значения x,y,z....;
    //вычисляем разницу между следующим и предыдущим значением 
    //Выбираем максимум из разниц элементов 
    //если максимум из разниц  меньше E
    //то выводим результат
        double  *Result   = new double[LengthLines];
        double *PrevResult =new double[LengthLines];
        double *DifferencesOfResults = new double[LengthLines];
        int k=0;
        
        for (int i = 0;i<LengthLines;i++){
            Result[i] = 0;}
        double SummElem = 0;
        while(true){
            
        for (int i = 0;i<LengthLines;i++)
        {
            PrevResult[i] = Result[i];
            SummElem = 0;
            for (int j = 0;j<LengthLines;j++)
            {
                if(i!=j){
                    SummElem+=M[i][j] *PrevResult[i];}
                
            }
            Result[i] = (1/M[i][i])*(MX[i]-SummElem);
        
            DifferencesOfResults[i] = fabs(Result[i]-PrevResult[i]);
}
        k++;
        if(k>2){
            if(Max(DifferencesOfResults,LengthLines)<E){break;}}
        
        
        for (int i = 0;i<LengthLines;i++){
        std::cout<<"x"<<i<<" = "<<Result[i]<<" ";
 
        
        }
        std::cout<<"\n";
        
        std::cin.get();
    }
 
    return 0.0;
    }
берет предыдущие значения неправильно
Миниатюры
Метод простых итераций для решения системы линейных уравнений  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru