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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.71
Alexpm
3 / 3 / 0
Регистрация: 06.09.2011
Сообщений: 47
09.12.2011, 19:10     Решить уравнение методом простых итераций #1
Помогите решить уравнение х^4+2*x^3-x-1 на интервале [0;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
#include <iostream>
#include <math.h>
using namespace std;
 
//Функция
double f (double x) //Функция
{
    return (pow(x, 4.0)+2.0*pow(x, 3.0)-x-1.0);
};
double f1 (double x) //Производная
{
    return (4.0*pow(x, 3.0)+6.0*pow(x, 2.0)-1.0);
};
 
double iter (double a, double b, double e)
{
    double x0, x1;
    x1=(a+b)/2;
    do
    {
        x1=x0;
        x0=f(x1);
    }
    while ((fabs(x0-x1))>=e);
    return x1;
};
 
 
void main()
{
    setlocale(LC_ALL,"Russian");
    double a=0.0, b=1.0;
    double e;
    cout<<"Введите точность:"<<endl;
    cin>>e;
    printf("| %34.20f    | \n", iter(a, b, e));
}
Не могу понять почему не работает... поправте пожалуйста.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NEO*
14 / 14 / 1
Регистрация: 02.11.2011
Сообщений: 22
09.12.2011, 22:13     Решить уравнение методом простых итераций #2
Нужно из начального уравнения (f(x)=0) выразить x: x=s(x).
Далее строится метод итераций x(n+1)=s(x(n)). Поэтому в функции iter() должно быть x1=s(x0).
И ещё не забудьте про условие сходимости метода: производная s'(x)<0 в отрезке локализации корня- это надо проверить в частности и в x0. Если это условие не выполняется нужно составлять другой итерационный процесс.
Alexpm
3 / 3 / 0
Регистрация: 06.09.2011
Сообщений: 47
10.12.2011, 05:38  [ТС]     Решить уравнение методом простых итераций #3
Цитата Сообщение от NEO* Посмотреть сообщение
x1=s(x0)
а что за функция s в которую подставляем x0? Каким образом её нужно выражать?
Евгений М.
1033 / 974 / 53
Регистрация: 28.02.2010
Сообщений: 2,817
Завершенные тесты: 2
10.12.2011, 08:35     Решить уравнение методом простых итераций #4
Цитата Сообщение от Alexpm Посмотреть сообщение
а что за функция s в которую подставляем x0?
http://e-lib.gasu.ru/eposobia/metody/R_2_2.html
ПРИМЕР 2.1
NEO*
14 / 14 / 1
Регистрация: 02.11.2011
Сообщений: 22
11.12.2011, 12:55     Решить уравнение методом простых итераций #5
изначально есть функция f(x)=x^4+2x^3-x-1. Необходимо найти корни уравнения f(x)=0 на [0;1].
Имеем уравнение x^4+2x^3-x-1=0 <=> x=x^4+2x^3-1 (x=s(x)). И составляем метод итераций следующим образом:
x(n+1)=s(x(n)).
Yandex
Объявления
11.12.2011, 12:55     Решить уравнение методом простых итераций
Ответ Создать тему
Опции темы

Текущее время: 19:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru