1

Тема: як знайти максимум функції через метод Ньютона?

хто може допомогти? Я написав програму для пошуку коренів а ось для пошуку максимуму на відрізку не можу або я туплю підкажіть ПЖ.

#include "pch.h"
#include <iostream> 
#include <cmath>
#include <cstdlib>
 
using namespace std;
 
double f(double x)
{
    double f;
    f = tan(7 * x) + pow(x, 2) * sin(x) + 1;
    return f;
}
 
double fp(double x)
{
    double fp;
    fp = pow(x, 2)*cos(x) + 7 / (cos(7 * x)*cos(7 * x)) + 2 * x*sin(x);                           
    return fp;
}
 
double fpp(double x)
{
    double fpp;
    fpp = 4 * x*cos(x) + (2 - pow(x, 2))*sin(x) + 98 * sin(7 * x) / (cos(7 * x)*cos(7 * x)*cos(7 * x));
    return fpp;
}
 
double maxf( double x, double eps)
{
    double h, x1;
    double x0 = x;
    do
    {
        x1 = x0 - (fp(x0) / fpp(x0));
        h = x1-x0;
        x0 = x1;
    } while (h > eps);
    return x1;
}
 
double Root( double b, double eps)
{
    double x = b;
    double x0 = x;
    while (abs(f(x)) > eps)
    {
        x = x0 - (f(x0) / fp(x0));
        x0 = x;
    }
    return x;
}
int main()
{
    setlocale(LC_ALL, "Rus");
    double a, b, eps;
    double *t = new double;
    cout << "Введите границы отрезка [a;b] для нахождения корня функции ";
    cout << "\nВведите левую границу отрезка a = "; cin >> a;
    cout << "Введите правую границу отрезка b = "; cin >> b;
    cout << "Введите значение погрешности E = "; cin >> eps;
    cout << "\n";
    if (a >= b)
    {
        cout << "Неверно указан интервал поиска" << endl;
        system("pause");
        return 0;
    }
    if (eps <= 0)
    {
        cout << "Значение погрешности должно быть положительным" << endl;
        system("pause");
        return 0;
    }
 
    if (Root(b, eps) > b || Root(b, eps) < a) {
        cout << "На этом интервале корней нету!" << endl;
    }else
        cout << "Корень функции: " << Root(b, eps) << endl;
    cout << "\nМаксимальное значение функции на заданном отрезке: f=" << maxf(b, eps) << endl;
    delete t;
    system("pause");
    return 0;
}

2

Re: як знайти максимум функції через метод Ньютона?

10menbey написав:

Я написав програму для пошуку коренів

Ви вірите, що в епоху гугла так можна когось обманути?
http://www.cyberforum.ru/cpp-beginners/ … 58102.html

3

Re: як знайти максимум функції через метод Ньютона?

У будь-якому разі, для пошуку максимуму вам знадобляться похідні, в максимумі похідна набуває значення 0. На відрізку ще треба кінці перевірити.

4 Востаннє редагувалося 10menbey (03.12.2018 20:11:34)

Re: як знайти максимум функції через метод Ньютона?

так то .то моя тема якщо не вірите я можу дописати або відредагувати той пост

5

Re: як знайти максимум функції через метод Ньютона?

хтось може допомогти ??

6

Re: як знайти максимум функції через метод Ньютона?

koala написав:

У будь-якому разі, для пошуку максимуму вам знадобляться похідні, в максимумі похідна набуває значення 0. На відрізку ще треба кінці перевірити.

але ж в мінімумі похідна теж дорівнює нулю, чи не так?

7

Re: як знайти максимум функції через метод Ньютона?

FakiNyan написав:
koala написав:

У будь-якому разі, для пошуку максимуму вам знадобляться похідні, в максимумі похідна набуває значення 0. На відрізку ще треба кінці перевірити.

але ж в мінімумі похідна теж дорівнює нулю, чи не так?

Так. І ще є точки перегину. І краї. І з усіх цих точок слід знайти максимум.

Подякували: FakiNyan1

8

Re: як знайти максимум функції через метод Ньютона?

10menbey написав:

хтось може допомогти ??

А чому вам недостатньо того, що вже сказано?

9

Re: як знайти максимум функції через метод Ньютона?

koala написав:
10menbey написав:

хтось може допомогти ??

А чому вам недостатньо того, що вже сказано?

а те що ви не перві хто це каже я роблю так як кажуть а воно не працює я вже всі статті перечитав а воно всеодно не робе.

10

Re: як знайти максимум функції через метод Ньютона?

Так, ще раз:
1. Ручками знаходите похідну вашої функції.
2. Шукаєте всі її корені.
3. Серед коренів та країв відрізку знаходите максимум функції.
Який саме пункт викликає проблеми?

11 Востаннє редагувалося 10menbey (04.12.2018 16:42:32)

Re: як знайти максимум функції через метод Ньютона?

koala написав:

Так, ще раз:
1. Ручками знаходите похідну вашої функції.
2. Шукаєте всі її корені.
3. Серед коренів та країв відрізку знаходите максимум функції.
Який саме пункт викликає проблеми?

3 пункт
було б простіше якби потрібно було робити не методом ньютона

12

Re: як знайти максимум функції через метод Ньютона?

3 пункт - це просто пошук максимума в масиві. Перебираєте всі значення, поки не знайдете максимальне, якщо не вмієте std::max_element користуватися.

Подякували: 10menbey1

13

Re: як знайти максимум функції через метод Ньютона?

koala написав:

3 пункт - це просто пошук максимума в масиві. Перебираєте всі значення, поки не знайдете максимальне, якщо не вмієте std::max_element користуватися.

це то добре .Але мені потрібно методом НЬЮТОНА

14

Re: як знайти максимум функції через метод Ньютона?

10menbey написав:
koala написав:

3 пункт - це просто пошук максимума в масиві. Перебираєте всі значення, поки не знайдете максимальне, якщо не вмієте std::max_element користуватися.

це то добре .Але мені потрібно методом НЬЮТОНА

А це пункт 2.

15

Re: як знайти максимум функції через метод Ньютона?

koala написав:
10menbey написав:
koala написав:

3 пункт - це просто пошук максимума в масиві. Перебираєте всі значення, поки не знайдете максимальне, якщо не вмієте std::max_element користуватися.

це то добре .Але мені потрібно методом НЬЮТОНА

А це пункт 2.

тут проблем нема .А коли потрібно знайти максимум вони з'являються.
Я код кидав якщо не можете зрозуміти проблему просто запустіть программу

16

Re: як знайти максимум функції через метод Ньютона?

10menbey написав:

Я код кидав якщо не можете зрозуміти проблему просто запустіть программу

Запускати чужий код на своєму компі тільки для того, щоб побачити те, що ви вже бачите і можете описати?
Причому далеко не факт, що я побачу те саме, що й ви. "Не знайдено pch.h" та "закінчилося місце на диску" - це помилки, які можуть виникати при компіляції, але далеко не факт, що на іншому комп'ютері вони відтворяться.

17

Re: як знайти максимум функції через метод Ньютона?

koala написав:
10menbey написав:

Я код кидав якщо не можете зрозуміти проблему просто запустіть программу

Запускати чужий код на своєму компі тільки для того, щоб побачити те, що ви вже бачите і можете описати?
Причому далеко не факт, що я побачу те саме, що й ви. "Не знайдено pch.h" та "закінчилося місце на диску" - це помилки, які можуть виникати при компіляції, але далеко не факт, що на іншому комп'ютері вони відтворяться.

а проблема замінити біблеотеку ?

18

Re: як знайти максимум функції через метод Ньютона?

У мене немає проблем. Це у вас проблема, а ви влаштовуєте спектакль у дусі радянських фільмів про партизанів.

19

Re: як знайти максимум функції через метод Ньютона?

koala написав:

У мене немає проблем. Це у вас проблема, а ви влаштовуєте спектакль у дусі радянських фільмів про партизанів.

я нормально попросив .пішов дивитись радянські фільми