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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2019, 19:10   #1
Cyber321
Новичок
Джуниор
 
Регистрация: 17.09.2018
Сообщений: 49
По умолчанию [C++] Интерполяция алгебраическими многочленами, помогите исправить ошибки, пожалуйста.

Здравствуйте, помогите исправить ошибки, пожалуйста
Вот задачка:
Данная n + 1 пара значений (x; y), связанных функциональной зависимостью f (x) вашего варианта. Значение x выбраны в n + 1 равноудаленных точках отрезка [a; b]. Необходимо построить интерполяционный много-член Pn (x). Для этого:
1) Рассчитайте значение функции f (x) в равноудаленных точках отрезка [a; b]. Тем самым будут заполнены два массива x и y, которые можно интерпретировать как экспериментально измеренные значения каких-либо физических величин.
2) Рассчитайте разделены разницы по значениям функции в n + 1 узле.
3) Запрограммируйте вычисления интерполяционного многочлена Pn (x) по схеме Горнера.
4) Постройте в графическом окне графики исходной функции f (x) и интерполяционного многочлена Pn (x) на отрезке [a; b +]. Значение> 0 Пожалуйста, выберите таким, чтобы область построения графика по оси x была в 1: 5 2 раза больше отрезка, на котором выбрали узлы дискретизации.
5) Опыт поведение интерполяционного многочлена при различной количестве узлов дискретизации (4,5,7,10 точек).
6) Смоделируйте погрешность задания значений функции в узлах дискретамизации путем добавления к значениям функции случайных чисел.
Код:
#include <math.h>
#include <windows.h>
#define e2.71
int main()
{
// Инициализация графики
int gd, gm;
detectgraph(&gd,&gm);
initgraph(&gd,&gm,"");
	// цвет фона - белый
	setbkcolor(WHITE);
	// очистка окна
	cleardevice();
	// текущий цвет - черный
	setcolor(BLACK);
	// координаты центра

int X0=getMaxx()/2;
int Y0=getMaxy()/2;
	// оси координат
line(0,Y0,getMaxx(),Y0);
line(X0,0,X0,getMaxy());
	// единичные отрезки в пикселах
	int edx=20;
int edy=15;
	// текущий цвет - зелёный
setcolor(LIGHTBLUE);
	//  переменная цикла
int k;
	//  рисуем засечки
	// по оси х
	for(k=0;edx*k<X0;k++)
	{
        line(X0+k*edx,Y0-3,X0+k*edx,Y0+3); line(X0-k*edx,Y0-3,X0-k*edx,Y0+3);}
	// по оси у for(k=0;edy*k<Y0;k++)
	{
	    line(X0-3,Y0+k*edy,X0+3,Y0+k*edy); line(X0-3,Y0-k*edy,X0+3,Y0-k*edy);}
	// текущий цвет - розовый
	setcolor(LIGHTRED);
// стиль линии - сплошная толстая
setlinestyle(SOLID_LINE,0,THICK_WIDTH);
// описание переменных
float a,b,x,y,delta;
	//  интервал дискретизации
delta=0.1;
	// границы построения по оси х
a=-2; b=2;
	// Вычисление начальных координат
	x=a;
y=e^(-x);
	// перемещение указателя в начало графика
	moveto(X0+edx*x,Y0-edy*y);
	// цикл построения графика
	for(x=a;x<=b;x=x+delta)
	{
	    y=e^(-x);
	    lineto(X0+edx*x,Y0-edy*y);};
	// установка стиля текста
	settextstyle(SANS_SERIF_FONT,0,2);
	// вывод заголовка
outtextxy(180,10,"График функции f(x)=e^(-x)");
getch(); // ожидание
	// закрытие графического окна
	closegraph();
return 0;
	}
Cyber321 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите, пожалуйста, исправить ошибки. Questionier Помощь студентам 3 08.03.2015 11:34
Помогите, пожалуйста, исправить ошибки в программе thedgehog Паскаль, Turbo Pascal, PascalABC.NET 1 16.12.2014 10:40
Помогите пожалуйста исправить ошибки в коде Nata Golden rose Общие вопросы C/C++ 6 18.05.2014 23:28
Помогите, пожалуйста, не могу исправить ошибки bunya Общие вопросы C/C++ 7 14.01.2009 22:28