Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2016, 22:56   #1
Alexandr-
Пользователь
 
Регистрация: 04.03.2013
Сообщений: 79
По умолчанию Метод Ньютона (касательных), программа выдает неправильный результат

Здравствуйте. Проблема в том, что с моей функцией программа выдает неверный результат(хотя если написать функцию, например x*x-2, то все нормально).
Метод Ньютона(касательных). Язык C++.

Код:
#include "stdafx.h"
#include <math.h>
#include <iostream>
using namespace std;
 
//Функция
double f(double x) {
 
    return (cos(x)*sin(6*x*x)-4*sin(x));
}
 //Производная
double f1(double x) {
 
    return (12*x*cos(x)*cos(6*x*x)-sin(x)*sin(6*x*x)-4*cos(x));
}
 //2 производная
double f2(double x) {
 
    return (-144*x*x*sin(6*x*x)*cos(x)-24*x*sin(x)*cos(6*x*x)+4*sin(x)-sin(6*x*x)*cos(x)+12*cos(x)*cos(6*x*x));
}
 
int main() {
    int n=0;
    double a,b,c,eps;
 
    cout<<"Vvedite granici otrezka\n";
    cout<<"a="; cin>>a;
    cout<<"b="; cin>>b;
    cout<<"eps="; cin>>eps;
 
    if(f(a)*f2(a)>0) c=a;
    else c=b;
    do {
        c=c-f(c)/f1(c);
        n+=1;
    }
    while (fabs(f(c))>=eps);
        cout<<"c="<<c<<"\n";
        cout<<"n="<<n<<"\n";
 
    system("pause");
    return 0;
}
Alexandr- вне форума Ответить с цитированием
Старый 30.11.2016, 23:10   #2
olej.tsil
Заблокирован
 
Регистрация: 29.11.2016
Сообщений: 215
По умолчанию

Цитата:
Сообщение от Alexandr- Посмотреть сообщение
с моей функцией программа выдает неверный результа
Бывает
olej.tsil вне форума Ответить с цитированием
Старый 30.11.2016, 23:16   #3
Alexandr-
Пользователь
 
Регистрация: 04.03.2013
Сообщений: 79
По умолчанию

Код вроде правильный, так почему выдает неверный ответ... Я вставлял свою функцию в другие проги и там тоже самое.
Alexandr- вне форума Ответить с цитированием
Старый 01.12.2016, 00:19   #4
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Это наверное недостаток метода. Он же не всегда работает. Вот - ссыла
Там еще пример приведен f(x)=x^3-2*x+2 - если начинать с 0, то все зациклится.

Тем более у вас такая функция со сложной производной:
Изображения
Тип файла: jpg ffx.jpg (23.2 Кб, 127 просмотров)
type_Oleg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод касательных Ньютона матлаб leonsed Помощь студентам 2 25.05.2016 22:07
Выдает неправильный ответ - метод половинного деления. Срочно!!! cyx Помощь студентам 0 15.05.2015 23:56
Метод касательных(Метод Ньютона) Fat_Tony Помощь студентам 0 22.01.2013 22:30
Метод Ньютона (касательных) Oh!_Margo Помощь студентам 1 18.03.2012 14:24
Метод касательных(Ньютона) Паскаль. P1RoG Помощь студентам 3 28.12.2010 13:39