23.06.2018, 19:14 [+3 UTC]
в нашей команде: 2 854 чел. | участники онлайн: 2 (рекорд: 21)

:: РЕГИСТРАЦИЯ

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.47 (16.04.2018)

Общие новости:
13.04.2018, 10:33

Форум:
18.06.2018, 08:55

Последний вопрос:
23.06.2018, 07:43

Последний ответ:
23.06.2018, 18:27

Последняя рассылка:
23.06.2018, 00:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
17.01.2012, 07:38 »
Даровко Антон Владимирович
Информация мне очень помогла в вопросе №185175 Ответ # 269589 от Гордиенко Андрея Владимировича. Я оценил его решение на отлично.
16.05.2010, 13:34 »
Andrekk
Спасибо большое. Наверное, я с требованиями напутал. Я подумаю над еще одним вопросом. Спасибо за внимание к моему вопросу. [вопрос № 178329, ответ № 261389]

РАЗДЕЛ • С / С++

Создание программ на языках C и C++.

[администратор рассылки: Андрей Кузнецов aka Dr_Andrew (Старший модератор)]

Лучшие эксперты в этом разделе

CradleA
Статус: Профессор
Рейтинг: 147
solowey
Статус: Студент
Рейтинг: 88
Асмик Гаряка
Статус: Советник
Рейтинг: 24

Перейти к консультации №:
 

Консультация онлайн # 193311
Раздел: • С / С++
Автор вопроса: pNod (1-й класс)
Отправлена: 24.05.2018, 21:15
Поступило ответов: 0

Здравствуйте, уважаемые эксперты! Прошу вас помощи в решении следующего вопроса: требуется разработать программу интерполяции, используя полином Ньютона. Функция задана таблично.
x 0.1 0.15 0.45 1.00 2.00 2.50
f(x) 2.5 2.20 2.10 1.15 1.20 1.95
Входные данные беру из файла (текстовый):
1) собственно указанные узы сетки
2) значения функции
3) новая сетка {xj} = j * 0.1, j = 0,1,2.
4) порядок полинома
На выход должно быть:
1) новая сетка
2) значения функции уже по новой сетке
3) погрешность интерполирования
Так как узлы отстоят друг от друга на разном расстоянии, то получается нужна формула для неравномерной сетки:



Понятно, что первичную сетку, значения функции можно задать массивами, указав сначала порядок полинома (по первичной сетке порядок ПЯТЬ, затем прочитать узлы сетки в цикле, где условие будет n=5).
Вопрос 1. Но как задать новую сетку? Она же не должна иметь столько же узлов, что и интерполируемая? У меня, например, их три... Как в этом случае скачать массив с узлами новой сетки из файла? Придется еще указывать размер массива, а я хотела более менее универсальный подход использовать.
Вопрос 2. Если игнорировать вопрос чтения из файла, и переделать под мои условия программу, найденную здесь, все заканчивается зависанием ПК. smile

#include	<stdio.h>

void	main(void)
{
	const	int n = 5;
	double	Xi[6] = {0.1,   0.15,   0.45,   1.00,   2.00,   2.50};
	double	Yi[6] = {2.5,   2.20,   2.10,   1.15,   1.20,   1.95};
	double	X[3] = {0, 0.1, 0.2};
	double	f[3], LN[3], XXX, XX=1.;
	int		i, j, k, m;

 for(m=0; m<n; m++)
{
	for (i=1, LN[i]=Yi[0]; i<n; i++)
	{
		XX *= (X[m]-Xi[i-1]);
		for (j=0,f=0.0; j<=i; j++)
		{
			for (k=0,XXX=1.; k<=i; k++)
			{
				if (k!=j)
					XXX *= Xi[j]-Xi[k];
			}
			f[j] += Yi[j]/XXX;
		}
		LN[i] += XX * f[j];
}
}
	printf("Y[X] = %g\n",LN);
}


Помогите, пожалуйста, найти ошибку!
Вопрос 3 Как найти погрешность? Можно ли вынести ее отдельной функцией?
smile

Состояние: Консультация закрыта

Oтветов пока не поступило.

Мини-форум консультации № 193311
pNod
1-й класс

ID: 401172

# 1

= общий = | 25.05.2018, 22:49 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Остался только третий вопрос, остальное сделала (если меня кто-то читает...) smile
Как найти погрешность при интерполяции по Ньютону, при неравномерной сетке? smile

 

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

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.13961 сек.

© 2001-2018, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.47 от 16.04.2018