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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
ovner
7 / 7 / 0
Регистрация: 06.10.2012
Сообщений: 140
#1

Метод простых итераций - C++

14.05.2013, 21:50. Просмотров 1504. Ответов 1
Метки нет (Все метки)

Здраствуйте! Нужно методом простой итерации решать такую систему нелинейных уравнений с точностью e=10-4 и найти погрешность.
Нашел на форуме 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
#include <iostream>
#include <conio.h>
#include <cmath>
 
using namespace std;
 
double f(double x)
{
    return pow(x,2.0) - 20*sin(x);
}
 
int main()
{
    double a,b,eps,x,dx;
    do
    {
        std::cout<<"Enter diapazone[a;b] of iterations\r\n";
        std::cout<<"a = ";std::cin>>a;
        std::cout<<"b = ";std::cin>>b;
        std::cout<<"Enter accuracy e ";std::cin>>eps;
        //Шаг определяем по точности вычислений
        //Погрешность f(x[i]) - f(x[i - 1]) < x[i] - x[i - 1] = h
        dx = (b - a)*(eps/10);//Мин шаг точность/10
        x = a;
        //Вычисления останавливаем когда добиваемся
        //требуемой точности вычислений eps < fabs(f(x))
        //или же достигаем конца промежутка
        while(eps < fabs(f(x)) && x <= b)
            x += dx;
        if(b < x)
            std::cout<<"[a;b] isn't contain roots\r\n";
        else
        {
            std::cout<<"root      : "<<x<<"\r\n";
            std::cout<<"acuracy e : "<<fabs(f(x))<<"\r\n";
        }
        std::cout<<"Press Y for new input\r\n";
    }
    while(toupper(getch()) == 'Y');
    return 0;
}

Кликните здесь для просмотра всего текста
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
#include <cmath>
#include <iomanip>
#include <iostream>
using namespace std;
 
double f(double x)
{
    return pow(2.0,x) - 2*pow(x, 2.0) - 1;
}
 
double g(double x)
{
    return x + 0.5*f(x);
}
 
int main()
{
    double x;
    double eps;
    cout<<"Enter initial root value   : ";cin>>x;
    cout<<"Enter error of calculation : ";cin>>eps;
    for(double iter = 1; eps < fabs(f(x)); iter = iter + 1)
    {
        system("cls");
        //*Итераций может быть очень много, поэтому рекомендую забыть
        //о целых а использовать дабл как счётчик, хотя в принципе если 
        //решение не нашли за 10-100 итераций то решения для данного коэффициента
        //при f(x) в g(x) нет и надо его менять
        cout<<"Iteration : "<<setprecision(0)<<iter<<endl;
        cout<<"x    = "<<x   <<endl;
        cout<<"g(x) = "<<g(x)<<endl;
        cout<<"f(x) = "<<f(x)<<endl;
        x = g(x);
    }
    system("pause");
    return 0;
}

Само задание прикрепил
0
Изображения
 
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2013, 21:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Метод простых итераций (C++):

Посчитать количество проведенных итераций (метод простых итераций, Pascal -> C++) - C++
перевести из паскаля в С++ program method_of_simple_iteration; uses crt; var a:array of real; b,c:array of real; ...

Метод простых итераций - C++
Необходимо реализовать программно метод простых итерация для решения НУ. к примеру возьмём x^6-3x^2+x-1, интервал изоляции корня . ...

Метод простых итераций. С/С++ - C++
Такое задание: написать алгоритм численного решения нелинейных уравнений методом простых итераций и реализовать его на языке...

Метод простых итераций - C++
Дана функция 1.4 Cos - Log=0 Ее надо преобразовать к виду ф(x)=x, я не совсем понимаю как это сделать нужно написать программу в C++...

Метод простых итераций - C++
Помогите с написанием программы на С++, нужно решить СЛАУ методом простых итераций. с точностью 0,0001. Мой код #include &lt;conio.h&gt; ...

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

1
ovner
7 / 7 / 0
Регистрация: 06.10.2012
Сообщений: 140
15.05.2013, 00:43  [ТС] #2
апну

Добавлено через 1 час 45 минут
еще раз апну
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2013, 00:43
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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