Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
4 / 4 / 3
Регистрация: 24.01.2013
Сообщений: 96
1

Используя интерполяционную формулу Ньютона, вычислить значение функции при заданных значениях аргумента с точностью до 0.001

31.01.2014, 01:05. Показов 4727. Ответов 5
Метки нет (Все метки)

Нужно написать програму которая будит используя интерполяционную формулу Ньютона вычеслять значение функции.

Задание:

Значение аргумента: х1=1.4161; x2=1.4625; x3=1.4135; x4=1.470.

Таблица значений:

x: 1.415, 1.420, 1.425, 1.430, 1.435, 1.440, 1.445, 1.450, 1.455, 1.460, 1.465.

y: 0.888551, 0.889599, 0.890637, 0.891667, 0.892687, 0.893698, 0.894700, 0.895693, 0.896677, 0.897653, 0.898619.

Задача очень тяжелая, но может кто то сможет сделать.

Заранее спасибо!

Добавлено через 56 минут
я не понял, какой функции нужно вычеслять значение?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.01.2014, 01:05
Ответы с готовыми решениями:

Вычислить значения функции y = -0,5 ln (x) при значениях аргумента, заданных в массиве X
Дан массив X, размером 5. Вычислить значения функции y = -0,5 ln (x) при значениях аргумента,...

Вычислить значение функции при заданных значениях параметров
Составить структурную схему алгоритма. Составить программу, вычисляющие значение функции...

Вычислить значение функции переменных при заданных значениях параметров
X=6t^2-(ctg z+1)/y^2 при y=2; z=4; t=sin(2+z) Попробовал сделать эту задачу исходя из...

Вычислить значение составной функции при заданных значениях аргументов
Такая задачка

5
433 / 298 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
31.01.2014, 01:19 2
Цитата Сообщение от Dima1996 Посмотреть сообщение
я не понял, какой функции нужно вычеслять значение?
Так это по численным методам? Функция у тебя задана набором точек. X и Y. А только строим приближенную функцию к данной и вычисляем уже её. (интреполируем)
Если сей час найду у себя среди лаб то скину.
1
4 / 4 / 3
Регистрация: 24.01.2013
Сообщений: 96
31.01.2014, 01:27  [ТС] 3
тоисть будет 1 ответ? или 4, так как значений аргумента 4??
0
433 / 298 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
31.01.2014, 02:01 4
Цитата Сообщение от Dima1996 Посмотреть сообщение
используя интерполяционную формулу Ньютона
А вам какая нужна?
1 или 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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
// Выводим массив на консоль
// _array - массив для вывода, 
// n -размер массива
void PrintArray(double* _array, int n)
{
    for (int i = 0; i < n; i++)
    {
        printf("%lf\t", _array[i]);
    }
}
//Считываем массив с консоли
//n размер массива
double* ReadArray(int n)
{
    double* _array = new double[n];
    for (int i = 0; i < n; i++)
    {
        scanf_s("%lf", &_array[i]);
    }
    return _array;
}
int main()
{
    double *x, *y, *a, *b, *d;
    int n, numb;
    double q, p, h, f;
    printf("Input n :\r\n");
    scanf_s("%i", &n);
    printf("Input x :\r\n");
    x = ReadArray(n);
    PrintArray(x, n);
    printf("Input y :\r\n");
    y = ReadArray(n);
    printf("\r\nX = :\r\n");
    PrintArray(x, n);
    printf("\r\nY = :\r\n");
    PrintArray(y, n);
    a = new double[n], d = new double[n], b = new double[n];
    for (int i = 0; i < n - 1; i++)
        a[i] = y[i + 1] - y[i];
    for (int i = 0; i < n - 1; i++)
        b[i] = a[i + 1] - a[i];
    for (int i = 0; i < n - 1; i++)
        d[i] = b[i + 1] - b[i];
    for (int i = 0; i < n - 1; i++)
        printf("X = %lf \t Y = %lf \t A = %lf\t B = %lf \t D = %lf \r\n", x[i], y[i], a[i], b[i], d[i]);
    h = x[2] - x[1];
    printf("Input f:\r\n");
    scanf_s("%lf", &f);
    printf("Input number х:");
    scanf_s("%i", &numb);
    q = (f - x[numb]) / h;
    p = y[numb] + (q*a[numb]) + (q*(q - 1) / 2)*b[numb] + (q*(q - 1)*(q - 2) / 6)*d[numb];
    printf("P = %lf\r\n", p);
    system("Pause");
    delete[] a, d, b, x, y;
    return 0;
}
1
4 / 4 / 3
Регистрация: 24.01.2013
Сообщений: 96
31.01.2014, 02:09  [ТС] 5
тоисть будет 1 ответ? или 4, так как значений аргумента 4??
сколько ответов должно быть?
0
433 / 298 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
31.01.2014, 02:12 6
Бл вот с исправленными ошибками.
В циклах накосячил
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
// Выводим массив на консоль
// _array - массив для вывода, 
// n -размер массива
void PrintArray(double* _array, int n)
{
    for (int i = 0; i < n; i++)
    {
        printf("%lf\t", _array[i]);
    }
}
//Считываем массив с консоли
//n размер массива
double* ReadArray(int n)
{
    double* _array = new double[n];
    for (int i = 0; i < n; i++)
    {
        scanf_s("%lf", &_array[i]);
    }
    return _array;
}
int main()
{
    /*srand(time(NULL));*/
    double *x, *y, *a, *b, *d;
    int n, numb;
    double q, p, h, f;
    printf("Input n :\r\n");
    scanf_s("%i", &n);
    printf("Input x :\r\n");
    x = ReadArray(n);
    PrintArray(x, n);
    printf("Input y :\r\n");
    y = ReadArray(n);
    printf("\r\nX = :\r\n");
    PrintArray(x, n);
    printf("\r\nY = :\r\n");
    PrintArray(y, n);
    a = new double[n], d = new double[n], b = new double[n];
    for (int i = 0; i < n - 1; i++)
        a[i] = y[i + 1] - y[i];
    for (int i = 0; i < n - 2; i++)
        b[i] = a[i + 1] - a[i];
    for (int i = 0; i < n - 3; i++)
        d[i] = b[i + 1] - b[i];
    for (int i = 0; i < n - 3; i++)
        printf("X = %lf \t Y = %lf \t A = %lf\t B = %lf \t D = %lf \r\n", x[i], y[i], a[i], b[i], d[i]);
    h = x[2] - x[1];
    printf("Input f:\r\n");
    scanf_s("%lf", &f);
    printf("Input number х:");
    scanf_s("%i", &numb);
    q = (f - x[numb]) / h;
    p = y[numb] + (q*a[numb]) + (q*(q - 1) / 2)*b[numb] + (q*(q - 1)*(q - 2) / 6)*d[numb];
    printf("P = %lf\r\n", p);
    system("Pause");
    delete[] a, d, b, x, y;
    return 0;
}
Добавлено через 46 секунд
Цитата Сообщение от Dima1996 Посмотреть сообщение
сколько ответов должно быть?
Ответ 1. Ты ищешь значение в конкретной точке.

Добавлено через 1 минуту
И да прога если верить моим лекциям написана для второй формулы ньютона.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.01.2014, 02:12

Вычислить значение функции exp(x) с точностью 0.001 (разложение в ряд Тейлора)
вычислить значение функции exp(x) с точностью 0.001, разложив функцию в ряд Тейлора где ошибка не...

Для заданных значений аргумента Х вычислить значения суммы S и функции Y или Z. Вычисление S произвести с точностью E
Составить программы в среде Dev -C++ 1. Для заданных значений аргумента Х вычислить значения суммы...

Используя интерполяционную формулу Ньютона, вычислить значение функции при заданных значениях аргумента с точностью до 0.001
Нужно написать программу которая будет используя интерполяционную формулу Ньютона вычислять...

Вычислить значение функции при заданных значениях аргумента
Как решать системы такого типа? Помогите решить,знающие люди.


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

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

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