Результаты исследования учащихся в проекте Осваиваем Delphi: различия между версиями
(→Постановка задачи "Интерполяция фунции") |
(→Постановка задачи "Интерполяция фунции") |
||
Строка 43: | Строка 43: | ||
Алгоритм решения задачи | Алгоритм решения задачи | ||
+ | |||
алг. Интерполяция | алг. Интерполяция | ||
+ | |||
арг. n:цел, x,y:вещтаб[1..n] | арг. n:цел, x,y:вещтаб[1..n] | ||
+ | |||
z: вещ | z: вещ | ||
+ | |||
рез. L:вещ. | рез. L:вещ. | ||
+ | |||
раб. i,j:цел. | раб. i,j:цел. | ||
+ | |||
p, s:вещ. | p, s:вещ. | ||
+ | |||
нач. | нач. | ||
+ | |||
ввод n | ввод n | ||
− | нц для i от 1 до n | + | |
+ | нц для i от 1 до n | ||
+ | |||
Ввод (x[i], y[i]); | Ввод (x[i], y[i]); | ||
+ | |||
кц | кц | ||
+ | |||
L:=0; | L:=0; | ||
+ | |||
нц для j от 1 до n | нц для j от 1 до n | ||
+ | |||
P:=1; s:=1; | P:=1; s:=1; | ||
− | нц для i от 1 до n | + | |
+ | нц для i от 1 до n | ||
+ | |||
если i<>j | если i<>j | ||
+ | |||
то p:=p*(z-x[i]) | то p:=p*(z-x[i]) | ||
− | s:=s*(x[j]-x[i]) | + | |
+ | s:=s*(x[j]-x[i]) | ||
+ | |||
все | все | ||
+ | |||
кц | кц | ||
− | L:=L+y[j]*p/s; | + | |
+ | L:=L+y[j]*p/s; | ||
+ | |||
кц | кц | ||
+ | |||
Вывод L | Вывод L | ||
+ | |||
Кон. | Кон. | ||
Версия 21:34, 31 октября 2009
Содержание
Авторы и участники проекта
Сухонина Евгения, Бачинина Наталья и участники группы "Математики"
Тема исследования группы
Создаем математическую модель
Проблемный вопрос (вопрос для исследования)
Как на языке Delphi составить математическую модель?
Гипотеза исследования
Нужно найти идею интересную для многих и выбрать подходящее решение составления математической модели.
Цели исследования
-Подобрать примеры задач из курса математики, для которых будет создаваться модели для программирования на Delphi;
-Выполнить постановку задачи;
-Разработать алгоритм выполнения действий;
-Написать программу задачи;
-Вывод исследования.
Результаты проведённого исследования
Рассмотрим использование языка Delphi для решения математических задач на примере задачи интерполирование функции.
Постановка задачи "Интерполяция фунции"
Задача интерполирования состоит в том, чтобы по значениям функции f(x) в некоторых точках отрезка восстановить ее значения в остальных точках отрезка. Интерполирование применяется при сгущении таблиц, когда вычисление функции f(x) трудоемко и необходимо составить таблицу с меньшим шагом. Под интерполированием понимается нахождение аналитической кривой, проходящей через строго заданные множество точек на плоскости. Пусть функция у=f(x)задана таблично. При этом требуется получить значение функции у=f(x) для такого значения аргумента х, которое входит в отрезок [х0, xn], но не совпадает ни с одним из значений хi i=0, 1,2,.. ,n т.е. х [х0, хn], х≠хi, i=0, 1, 2,...,n. Будем искать значение функции в точке z, если z в интервале хi < z < хi+1. Задача заключается в нахождении такого интерполирующего многочлена, значения которого в узлах интерполяции совпадут с соответствующими значениями функции. Одно из возможных методов – использование многочлена Лагранжа. Функция φj (z) носят название Лагранжовых коэффициентов. В данном программном комплексе задача интерполирования решается с помощью формулы
Ln(z)=<math>Вставьте сюда формулу</math>
Алгоритм решения задачи
алг. Интерполяция
арг. n:цел, x,y:вещтаб[1..n]
z: вещ
рез. L:вещ.
раб. i,j:цел.
p, s:вещ.
нач.
ввод n
нц для i от 1 до n
Ввод (x[i], y[i]);
кц
L:=0;
нц для j от 1 до n
P:=1; s:=1;
нц для i от 1 до n
если i<>j
то p:=p*(z-x[i])
s:=s*(x[j]-x[i])
все
кц
L:=L+y[j]*p/s;
кц
Вывод L
Кон.