Показать сообщение отдельно
Старый 21.03.2019, 18:18   #1 (permalink)
observersilent
Новичок
 
Регистрация: 21.03.2019
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Переделать написанную функцию

По формулам которые ниже на картинке надо написать функцию, которая на входе получает массив со значениями x, массив со значениями функции в точках х - у, степень полинома Лагранжа - n, и число _x в котором надо найти производную. Функцию для первой производной я написал, а поправить ее чтоб она находила производную второй никак не могу. Помогите пожалуйста. Функция для нахождения первой производной:


Код:
double diff(double* x, double* y, int n, const double _x) 
{
    double result = 0;
    for(int i = 0; i < n + 1; i++)
    {
        double result_2 = 0;
        for(int j = 0; j < n + 1; j++)
        {
            if(j != i)
            {
                double  P = 1;
                for(int k = 0; k < n + 1; k++)
                {
                    if(k != i && k != j)
                    {
                        P *= (_x - x[k]) / (x[i] - x[k]);
                    }
                    
                }
                result_2 += P / (x[i] - x[j]);
            }
 
        }
        result += y[i] * result_2;
    }
    return result;
}
Изображения
 
observersilent вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070