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

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

Войти
Регистрация
Восстановить пароль
 
nesterka
0 / 0 / 0
Регистрация: 30.10.2015
Сообщений: 21
#1

Найти корень нелинейного уравнения методом Ньютона - C++

03.11.2016, 15:23. Просмотров 428. Ответов 8
Метки нет (Все метки)

Добрый день!
Помогите, пожалуйста, найти корень уравнения:
http://www.cyberforum.ru/cgi-bin/latex.cgi?{1.4}^{x}-x=0
с точностью e = 10-5 при заданном значении начала отрезка а = 3
Дополнительно дали вот эти данные, но я даже не знаю для чего.
(1.4*ln1.4-1).
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2016, 15:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти корень нелинейного уравнения методом Ньютона (C++):

Найти корень уравнения на заданном интервале методом Ньютона - C++
Найти корень уравнения на интервале с заданной пользователем точностью e + 2.4x − 3.7 = 0. Методом Ньютона, =

Вычислить методом Ньютона корень уравнения - C++
Уважаемый программисты,помогите пожалуйста вот такую курсовую задали,я не то что на с++,а просто так не смогу решить этот пример ...

Вычислить методом Ньютона корень уравнения - C++
Помогите, пожалуйста, написать программу, вычисляющую методом Ньютона`(x_(k+1)=x_k-A^(-1) (x_k )f(x_k )) где уравнений с положительными...

Вычислить методом Ньютона корень уравнения - C++
Помогите, пожалуйста, написать программу, вычисляющую методом Ньютона: sinx - x + 0,5 = 0, интервал изоляции корня .

Поиск корня нелинейного уравнения простой итерацией, половинным делением, методом Ньютона - C++
Найти корень уравнения sin x = x с погрешностью не более 0.000001 и для каждого метода определить количество шагов алгоритма. ...

Найти корень нелинейного уравнения (Pascal -> C++) - C++
как вписать функцию (tg(0.47x+0.2)=x^2 на языке С++ если есть пример на языке паскаля. (нужно найти корень нелинейного уравнения). ...

8
SpBerkut
Объявлятель переменных
908 / 234 / 113
Регистрация: 24.09.2011
Сообщений: 874
Завершенные тесты: 2
03.11.2016, 15:33 #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
#include <iostream>
#include <iomanip>
#include <cmath>
 
const double eps = 1e-5;
 
// функция 
double f(const double x)
{
    return pow(1.4,x) - x;
}
 
// производная функции
double df(const double x)
{
    return (f(x+eps)-f(x-eps))/(2*eps); // численное вычисление производной
    //return log(1.4)*pow(1.4,x)-1; // аналитическое вычисление производной
}
 
// поиск корня
double getRoot(double x) {
   double x1  = x - f(x)/df(x);
   double x0 = x;
   while(fabs(x0-x1) > eps) {
      x0 = x1;
      x1 = x1 - f(x1)/df(x1);
   }
   return x1;
}
 
int main()
{
    std::cout << std::setprecision(8) << getRoot(3) << std::endl;
}
2
Даценд
Модератор
Эксперт .NET
3531 / 3452 / 1770
Регистрация: 20.04.2015
Сообщений: 6,347
03.11.2016, 15:38 #3
nesterka,
(1.4*ln1.4-1) - функция производной
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
double f(double x)
{
    return pow(1.4, x)-x;
}
 
double fp(double x)
{
    return pow(1.4, x)*log(1.4)-1;
}
 
int main()
{
    double a=3, e=1e-5, x;
    x=a;
    while (abs(f(x))>e)
    {
        x = x - f(x) / fp(x);
    }
    std::cout<<"x=" << x;
}
2
SpBerkut
Объявлятель переменных
908 / 234 / 113
Регистрация: 24.09.2011
Сообщений: 874
Завершенные тесты: 2
03.11.2016, 15:41 #4
Цитата Сообщение от Даценд Посмотреть сообщение
C++
1
abs(f(x))>e
Вы имели в виду
C++
1
fabs(f(x))>e
0
Даценд
Модератор
Эксперт .NET
3531 / 3452 / 1770
Регистрация: 20.04.2015
Сообщений: 6,347
03.11.2016, 15:53 #5
SpBerkut,
Не помню, начиная с которого стандарта есть перегрузка double abs (double)
0
SpBerkut
Объявлятель переменных
908 / 234 / 113
Регистрация: 24.09.2011
Сообщений: 874
Завершенные тесты: 2
03.11.2016, 16:20 #6
Цитата Сообщение от Даценд Посмотреть сообщение
Не помню, начиная с которого стандарта есть перегрузка double abs (double)
Запускал на C++14. Выдаёт x=3.
0
Даценд
Модератор
Эксперт .NET
3531 / 3452 / 1770
Регистрация: 20.04.2015
Сообщений: 6,347
03.11.2016, 17:21 #7
SpBerkut,
из 14 стандарта:

8 In addition to the double versions of the math functions in <cmath>, C++ adds float and long double overloaded versions of these functions, with the same semantics.
9 The added signatures are:
float abs(float);
float acos(float);
float acosh(float);


А на деле...
1) В CodeBlocks компилятор GNU GCC (стандарт C++14) в упор не видит abs из <cmath> ни в какой перегрузке. Зато прекрасно видит и использует std::abs версии double
2) VS2010 (в котором я писал и проверял код из #3) прекрасно работает с abs(double), даже если не подключить <cmath> и не указать std::
0
regio1961
117 / 117 / 51
Регистрация: 06.06.2016
Сообщений: 272
03.11.2016, 17:34 #8
Никого не смущает, что у уравнения
http://www.cyberforum.ru/cgi-bin/latex.cgi?1.4^x - x = 0
два корня?
0
SpBerkut
Объявлятель переменных
908 / 234 / 113
Регистрация: 24.09.2011
Сообщений: 874
Завершенные тесты: 2
03.11.2016, 18:37 #9
Цитата Сообщение от regio1961 Посмотреть сообщение
Никого не смущает, что у уравнения
Нет. Метод Ньютона находит лишь один корень.
1
03.11.2016, 18:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2016, 18:37
Привет! Вот еще темы с ответами:

Найти корень уравнения методом хорд и методом касательных - C++
На языке программирования DEV C++ 5.8.2 Метод Хорда и Касательный X^3+3x^2-24x-3=0 На отрезке (-1 и 0) вот в методе Касательного...

Найти корни уравнения методом Ньютона - C++
Задание Найти корень уравнения с помощью указанного метода return pow(0.2*(x),3)-cos(x) ;//моя функия #include...

Найти корень уравнения y=f(x)=0 методом касательных - C++
Добрый день. Помогите пожалуйста, нужно распечатать значение функции в точке х1. В моем варианте при распечатке это значение равно 0... ...

Найти корень уравнения методом хорд - C++
Добрый день! Помогите, пожалуйста найти корень уравнения, решая методом хорд: {1.4}^{x} – x = 0 с точностью e = 10-5 при заданном...


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

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

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