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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.79
fits
3 / 3 / 1
Регистрация: 08.12.2012
Сообщений: 47
#1

метод Эйткена-Стеффенсона - C++

26.04.2013, 23:26. Просмотров 3410. Ответов 5
Метки нет (Все метки)

помогите пожалуйста!

9. Создать набор функций для вычисления с точностью ε =10-5 значения корня уравнения F(x)=0 на интервале [a, b] методом Эйткена-Стеффенсона. Имя конкретной функции F(x) передать вызываемой подпрограмме как параметр. Полагается, что F(a)*F(b)<0, т.е корень находится на отрезке [a,b].

Указание. Метод обеспечивает решение уравнения F(x)=0 по следующему алгоритму.

1. Задаем начальное приближение xn= x0 (x0 [ a , b ])

2. Находим первое приближение x1 = F(x0) и второе приближение

x2 = F(x1).

3. Вычисляем xn+1 =(x0x2 - x12)/(x0 - 2x1+x2).

4. Проверяем условия | xn+1 - xn| > ε , x0 - 2 x1 +x2 0. Если эти условия

соблюдаются, идём к п.1., т.е задаем для xn новое значение xn+1 , в про-тивном случае останавливаем счёт и получаем x = xn+1.

1. Рассмотреть вариант:

x-Sinx-0.3=0

a=1, b=2 ОТВЕТ: x=1.171229

2. Рассмотреть вариант:

3.94x3-11.8x2-1.56x+18.67=0

a=1.8, b=2 ОТВЕТ: x=1.94
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2013, 23:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос метод Эйткена-Стеффенсона (C++):

Объясните метод Эйткена - C++
Добрый вечер! Купил лабу по методу Эйткена, но что и как она выполняет никак не могу разобраться. Саму теорию знаю, но программист создал...

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

Метод медиан из трех элементов VS улучшенный быстрый метод сортировки(метод Бентли-Макилроя) - C++
Здравствуйте! Дали весьма интересное задание. Сравнить два вышеуказанных метода сортировки для массива из 10000 элементов, результаты...

Мой код - метод бисекции, метод секущих (метод хорд) - C++
Всем привет!!! Изучаем в институте С++. Сделал код, и там, и там одна и та же проблема - при любых вбиваемых значениях программа делает...

Исследовать итерационный метод- метод касательных для решения нелинейных уравнений - C++
прочитал много всего , но сам пример реализовать никак не могу , кто может помогите F(x) = x5+5x+1=0 с...

Не сходится теория и практика метод Шелла и метод простого выбора - C++
Здравствуйте! Помогите пожулуйста найти ошибке в коде, Я уже не знаю где ее искать. У меня метод простого выбора работает по показателям...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
cyberbrain1000
23 / 23 / 3
Регистрация: 15.04.2013
Сообщений: 62
27.04.2013, 09:55 #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
#include <stdio.h>
#include <math.h>
 
// x = x + 3.94*x*x*x-11.8*x*x-1.56*x+18.67
double f(double x)
{
  //return sin(x) +.3;
  return 3.94*x*x*x-11.8*x*x-0.56*x+18.67;
}
 
double Solve(double x, double epsilon)
{
  double x1,x2,xold,tmp;
  do
  {
    xold=x;
    x1=f(x);
    x2=f(x1);
    tmp=x-2*x1+x2;
    x=(x*x2-x1*x1)/tmp;
  } while (fabs(xold-x)>epsilon && tmp!=0);
  return x;
}
 
int main()
{
  printf("3.94*x*x*x-11.8*x*x-0.56*x+18.67, [a; b]=[1.8; 2.0]");
  printf("\nnx0 = %f",Solve(1.9, 1e-5));
}
fits
3 / 3 / 1
Регистрация: 08.12.2012
Сообщений: 47
28.05.2013, 20:01  [ТС] #3
скажи ,пожалуйста,почему при вызове функции интервал начинается с 1.9 а по условию 1.8?
cyberbrain1000
23 / 23 / 3
Регистрация: 15.04.2013
Сообщений: 62
29.05.2013, 10:26 #4
исправь на 1.8
fits
3 / 3 / 1
Регистрация: 08.12.2012
Сообщений: 47
04.06.2013, 20:37  [ТС] #5
тогда ответ не совпадает
cyberbrain1000
23 / 23 / 3
Регистрация: 15.04.2013
Сообщений: 62
05.06.2013, 08:22 #6
в условии задачи написано:
>1. Задаем начальное приближение xn= x0 (x0 [ a , b ])
то есть можно взять любым из интервала, так что 1.9 подходит
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2013, 08:22
Привет! Вот еще темы с ответами:

Метод деления отрезка пополам для решения нелинейных уравнений (метод дихотомии) - C++
Здравствуйте. Помогите пожалуйста дописать программу. Вот что вымучал, но на сдаче завалили, типо нет вывода корней, не рассмотрены...

Нахождения корней уравнения: метод половинного деления (бисекции) или метод хорд - C++
Разработать программу нахождения корней уравнения f(x) =0 на интервале с точностью e = 0,001 (интервал или подобрать самостоятельно). При...

Производный класс: метод возведения в произвольную степень, и метод для вычисления логарифма числа - C++
Реализовать класс-оболочку Number для числового типа float. Реализовать методы сложения и деления. Создать производный класс Real, в...

Класс vector (поля: координаты, 2 конструктора, метод нахождения длины вектора и метод вывода координат на экран) - C++
Здравствуйте , помогите пожалуйста с заданием. Организовать класс Вектор на плоскости – поля: координаты, 2 конструктора, метод...


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

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

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