Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Выделите форму, щелкнув на ней левой кнопкой мыши, и в свойство caption(надпись) впишите тригонометрическая интерполяция.
4. В верхней части формы, по центру, поместите кнопку Button1 (страница Стандарт), для которой установите свойство Font – жирный, размер 10, а в свойство Caption впишите ИСХОДНЫЕ ДАННЫЕ. 5. Под кнопкой разместите компонент StringGrid1 (страница Дополнительно). Установите следующие значения свойств компонента StringGrid1: ColCount – 22, DefaultColWidth -28, FixedCols – 1, FixedRows – 0, Font – черный, обычный, размер 8, RowCount – 3. Раскрыв свойство Options, установите значение подсвойства goEditing – true, что даст возможность редактировать содержимое таблицы в StringGrid1. Ниже, по центру, поместите кнопку Button2 (страница Стандарт), для которой установите свойство Font – жирный, размер 10, а в свойство Captionвпишите КОЭФФИЦИЕНТЫ ИНТЕРПОЛЯЦИОННОГО МНОГОЧЛЕНА. 7. Под кнопкой Button2 разместите компонент StringGrid2 (страница Дополнительно). Установите следующие значения свойств компонента StringGrid1: ColCount – 12, DefaultColWidth - 48, FixedCols – 1, FixedRows – 0, Font – черный, обычный, размер 8, RowCount – 3. Ниже компонента StringGrid2, по центру, поместите кнопку Button3 (страница Стандарт), для которой установите свойство Font – жирный, размер 10, а в свойство Captionвпишите ПОСТРОЕНИЕ ГРАФИКОВ. Рис.2.5 – форма по окончании проектирования Рис.2.6 – результаты выполнения задания Рис.2.7 – результаты после изменения исходных данных
9. В нижнюю часть формы поместите компонент Chart1 (страница Additional). Зададим свойства компонента. Щелкните правой кнопкой мыши на компоненте Chart1 и в появившемся меню выберите Edit Chart …. На экране появится окно Редактора Диаграмм (Editing Chart1) с открытой страницей Chart, которая имеет несколько закладок. На закладке Panel, нажав кнопку Panel Color…, выберите белый цвет. На закладке Series щелкните на кнопке Add… - добавить серию. В появившемся окне выберите тип графика – Point и выключите индикатор 3D. После щелчка на OK снова появится окно Editing Chart1. Перейдите на закладку Titles. В окне редактирования, которое в данный момент соответствует Title – заголовку графика, сотрите TChart и напишите (шрифт Font… - черный, жирный, размер 10) ТАБЛИЧНАЯ И РАСЧЕТНАЯ ЗАВИСИМОСТИ. Цвет фона Back Color.. установите белый.В выпадающем списке от окна редактирования Title перейдите в окно редактирования Foot и напишите тем же шрифтом аргумент X. В группе кнопок Alignment нажмите кнопку Right. Цвет фона Back Color.. также установите белый. Перейдите на закладку Axis для задания координатных характеристик осей. Оставьте в группе Axis нажатой кнопку Left и включенным индикатор Automatic. Затем нажмите в группе Axis кнопку Bottom и выключите индикатор Automatic. Нажмите среднюю кнопку Change… и в окне Value редактора Minimum Bottom Axis впишите число 0. Аналогичные действия выполните с верхней кнопкой Change…, но впишите число 6. И, нажав нижнюю кнопку Change…, в окно Increment: занесите 0, 6. Перейдите на закладку Series, кнопкой Add… добавьте график Line при выключенном индикаторе 3D. Выделив Series 1, кнопкой Title … вызовите Change Series Title, где дайте заголовок первому графику – исходные данные. Действуя подобным образом, т.е. выделив Series 2, дайте заголовок второму графику – интерполяционный многочлен. На вкладке Legend нажмите кнопку Top. Перейдите со страницы Chart на страницу Series. Здесь на закладке Format задают параметры линий графиков. Требуемый график (исходные данные, интерполяционный многочлен) выбирается из выпадающего списка. Для графика исходные данные установите размеры прямоугольника: Width =2, Height =2, а нажав кнопку Border…, задайтетолщину линии графика Width =1, и цвет линии графика Color… - черный. Для графика интерполяционный многочлен в группе Line через кнопку Border… устанавливается толщина (Width =2) линии графика, и через кнопку Color… - цвет линии графика – черный. Выключите индикатор Color Each. 10. Файл LR2.cpp с обработчиками щелчков на кнопках имеет вид: //--------------------------------------------------------------------------- #include < vcl.h> #pragma hdrstop #include " LR2.h" #include< math.h> //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource " *.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1:: TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- double x[21], a[11], b[11]; double y[21]={2.0, -0.06, -1.9, -3.4, -4.9, -4.8, -4.0, -2.7, -1.1, 0.95, 3.0, 5.0, 6.7, 8.1, 8.8, 8.9, 8.5, 7.47, 5.94, 4.06, 2.43}; void __fastcall TForm1:: Button1Click(TObject *Sender) { StringGrid1-> Cells[0][0]=" i"; StringGrid1-> Cells[0][1]=" x[i]"; StringGrid1-> Cells[0][2]=" y[i]"; for(int i=0; i< 21; i++){ StringGrid1-> Cells[i+1][0]=IntToStr(i); x[i]=2*M_PI*i/21; StringGrid1-> Cells[i+1][1]=FloatToStrF(x[i], ffFixed, 2, 2); StringGrid1-> Cells[i+1][2]=FloatToStrF(y[i], ffFixed, 2, 2); } } //--------------------------------------------------------------------------- void __fastcall TForm1:: Button2Click(TObject *Sender) { for(int k=0; k< =10; k++){ StringGrid2-> Cells[0][0]=" k"; StringGrid2-> Cells[0][1]=" a[k]"; StringGrid2-> Cells[0][2]=" b[k]"; StringGrid2-> Cells[k+1][0]=IntToStr(k); a[k]=b[k]=0; for(int i=0; i< 21; i++){ a[k]+=StrToFloat(StringGrid1-> Cells[i+1][2])*cos(k*x[i]); b[k]+=StrToFloat(StringGrid1-> Cells[i+1][2])*sin(k*x[i]); } a[k]/=21; StringGrid2-> Cells[k+1][1]=FloatToStrF(a[k], ffFixed, 5, 5); b[k]/=21; StringGrid2-> Cells[k+1][2]=FloatToStrF(b[k], ffFixed, 5, 5); } } //--------------------------------------------------------------------------- void __fastcall TForm1:: Button3Click(TObject *Sender) { Series1-> Clear(); Series2-> Clear(); for(int i=0; i< 21; i++){ Series1-> AddXY(x[i], StrToFloat(StringGrid1-> Cells[i+1][2]), " ", clBlack); } for(float x=0; x< 2*M_PI; x+=0.001){ float p=a[0]; for(int k=1; k< 11; k++) p+=2*(a[k]*cos(k*x)+b[k]*sin(k*x)); Series2-> AddXY(x, p, " ", clBlack); } } //--------------------------------------------------------------------------- 11. Запустим приложение на выполнение, нажав быстрые кнопки Сохранить все и Запуск. После щелчков на кнопках ИСХОДНЫЕ ДАННЫЕ, КОЭФФИЦИЕНТЫ ИНТЕРПОЛЯЦИОННОГО МНОГОЧЛЕНА, ПОСТРОЕНИЕ ГРАФИКОВ получим результаты выполнения задания (рис.2.6). 12. Воспользуемся тем, что таблица ИСХОДНЫЕ ДАННЫЕ позволяет редактировать значения y[i]. Изменив одно из значений, после щелчков на кнопках КОЭФФИЦИЕНТЫ ИНТЕРПОЛЯЦИОННОГО МНОГОЧЛЕНА, ПОСТРОЕНИЕ ГРАФИКОВ, получим результаты (рис.2.7), которые также показывают выполнение основного требования интерполяции – в узлах интерполяции расчетные значения интерполяционного многочлена совпадают с исходными значениями таблично заданной функции. 13. Для возврата к первоначальным исходным данным достаточно щелкнуть на кнопке ИСХОДНЫЕ ДАННЫЕ. 14. Для завершения работы щелкните на кнопке формы “ Закрыть ” и выйдите из среды Builder.
Содержание отчета 1. Задание. 2. Формулы метода. 3. Результаты выполнения задания в Mathcad’ е. 4. Блок-схема алгоритма и таблица идентификаторов. 5. Исходный код. 6. Результаты выполнения работы в виде значений коэффициентов интерполирующего полинома и графика полученного полинома с нанесенными на график исходными данными. 7. Библиографический список.
Контрольные вопросы 1. Что означают понятия интерполяции и экстраполяции? 2. Как решают задачу интерполяции и экстраполяции? 3. Каков результат решения задачи интерполяции и экстраполяции? 4. Какие методы интерполяции и почему применяют при небольшом числе узлов интерполяции? 5. Какие методы интерполяции и почему применяют при большом числе узлов интерполяции? 6. Сравните интерполяции по Лагранжу и сплайнами. 7. Какие недостатки имеют кусочно-линейная интерполяция и экстраполяция? 8. Расскажите о достоинствах и недостатках тригонометрической интерполяции. 9. Что нужно сделать с исходными данными, чтобы получить на графике существенное отличие сплайновой интерполяции от кусочно-линейной? 10. Как изменяется качество интерполяции для перечисленных методов при увеличении числа узлов интерполяции? 11. Сравните методы интерполяции по объему вычислений, т.е. по затратам машинного времени.
АЛГЕБРА, ФОРМИРОВАНИЕ, РАЗЛОЖЕНИЕ И ОБРАЩЕНИЕ МАТРИЦ
|