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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2012, 19:15   #11
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Вот тоже делал лабу на эту тему. Может, пригодится.
Код:
#include <fstream>
#include <vector>
#include <iterator>
#include <algorithm>

using namespace std;

template <class T>
struct point
{
	T x, y;
	point() : x(T()), y(T()) { };
	point(T ax, T ay) : x(ax), y(ay) { }
};

template <class T>
istream& operator>>(istream& s, point<T>& p)
{
	return s >> p.x >> p.y;
}

template <class T>
ostream& operator<<(ostream& s, const point<T>& p)
{
	return s << p.x << ' ' << p.y;
}

const double h = 1e-1;

int main()
{
	vector< point<double> > pi;
	ifstream fin("input.txt");
	if (!fin)
		return 1;
	copy(istream_iterator< point<double> >(fin),
		istream_iterator< point<double> >(), back_inserter(pi));
	const unsigned npi = pi.size();

	const double xb = pi.front().x, xe = pi.back().x;
	const unsigned npo = (xe - xb) / h + 2;
	vector< point<double> > po;
	po.reserve(npo);
	for (unsigned c = 0; c < npo; c++)
	{
		double s = 0, x = pi[0].x + c * h;
		for (unsigned i = 0; i < npi; i++)
		{
			double p1 = 1, p2 = 1;
			for (unsigned j = 0; j < npi; j++)
			{
				if (j == i)
					continue;
				p1 *= x - pi[j].x;
				p2 *= pi[i].x - pi[j].x;
			}
			s += pi[i].y * p1 / p2;
		}
		point<double> p(x, s);
		po.push_back(p);
	}

	ofstream fout("output.txt", ios::out | ios::trunc);
	if (!fout)
		return 2;
	copy(po.begin(), po.end(), ostream_iterator< point<double> >(fout, "\n"));
}
Somebody вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
интерполяционный многочлен Лагранжа, Pascal Ladyia Помощь студентам 8 15.10.2013 15:24
Интерполирование функций, многочлен Лагранжа! IdiotDetected Помощь студентам 0 07.04.2011 21:50
Есть у кого код??(интерпритационный многочлен Лагранжа) ins1der Общие вопросы Delphi 2 21.05.2010 01:20
Интерполяционный многочлен лагранжа 3.14oner Паскаль, Turbo Pascal, PascalABC.NET 2 10.11.2008 17:30