Результаты исследования учащихся в проекте Осваиваем Delphi: различия между версиями

Материал из Wiki Mininuniver
Перейти к навигацииПерейти к поиску
(Результаты проведённого исследования)
(Результаты проведённого исследования)
Строка 50: Строка 50:
 
'''Алгоритм решения задачи'''
 
'''Алгоритм решения задачи'''
  
алг. Интерполяция
+
алгоритм Интерполяция
  
арг. n:цел, x,y:вещтаб[1..n]
+
Program Lagrange;
 
+
var i,j,n:integer;     
z: вещ
+
lag,xp,z,p:real;
 
+
x,y:array [1..20] of real
рез. L:вещ.
+
begin
 
+
write('введите число узлов');
раб. i,j:цел.
+
readln(n);
 
+
write('введите точку, в которой ищем значение    функции ');
p, s:вещ.
+
readln(xp);
 
+
for i:=1 to n do
нач.
+
begin
 
+
write ('введите значение',i,'узла и значение функции в нем');
ввод  n
+
readln(x[i], y[i]);
 
+
end;
нц для i от 1 до n
+
lag:=0;
+
for i:=1 to n do
Ввод (x[i], y[i]);
+
begin
 
+
p:=1; z:=1;
кц
+
for j:=1 to n do
 
+
if i<>j then
L:=0;
+
begin
 
+
p:=p*(xp-x[j]);
нц для  j от 1 до n
+
z:=z*(x[i]-x[j]);
 
+
end;
P:=1; s:=1;
+
lag:=lag+y[i]*p/z;
 
+
end;
нц  для i от 1 до  n
+
writeln('искомое значение в точке', xp:3,'равно',lag:5:1);
 
+
end.
если i<>j
 
 
 
то  p:=p*(z-x[i])
 
 
 
s:=s*(x[j]-x[i])
 
       
 
все
 
 
 
кц
 
 
 
L:=L+y[j]*p/s;
 
 
кц
 
 
 
Вывод  L
 
 
 
Кон.
 
  
 
==Вывод==
 
==Вывод==

Версия 09:03, 21 ноября 2009

Авторы и участники проекта

Сухонина Евгения, Бачинина Наталья и участники группы "Математики"

Тема исследования группы

Создаем математическую модель

Проблемный вопрос (вопрос для исследования)

Как на языке Delphi составить математическую модель?

Гипотеза исследования

Чтобы составить математическую модель необходимо выполнить формализацию задачи(представить её в виде математических соотношений)

Цели исследования

-Подобрать примеры задач из курса математики для создания моделей на Delphi

-Выполнить постановку задачи

-Разработать алгоритм решения задачи

-Создать программу на Delphi

-Проанализировать полученные результаты

Результаты проведённого исследования

Рассмотрим использование языка Delphi для решения математических задач на примере задачи интерполирования функции.

Постановка задачи "Интерполяция фунции"

Задача интерполирования состоит в том, чтобы по значениям функции f(x) в некоторых точках отрезка восстановить ее значения в остальных точках отрезка. Интерполирование применяется при сгущении таблиц, когда вычисление функции f(x) трудоемко и необходимо составить таблицу с меньшим шагом.

Под интерполированием понимается нахождение аналитической кривой, проходящей через строго заданное множество точек на плоскости.

Пусть функция у=f(x)задана таблично.

Таблица2.JPG

При этом требуется получить значение функции у=f(x) для такого значения аргумента х, которое входит в отрезок [х0, xn], но не совпадает ни с одним из значений хi i=0, 1,2,.. ,n т.е. х [х0, хn], х≠хi, i=0, 1, 2,...,n. Будем искать значение функции в точке хi < z < хi+1.

Задача заключается в нахождении такого интерполирующего многочлена, значения которого в узлах интерполяции совпадут с соответствующими значениями функции. Одно из возможных методов – использование многочлена Лагранжа. Функция φj (z) носят название Лагранжовых коэффициентов. В данном программном комплексе задача интерполирования решается с помощью формулы

Формула.JPG

Алгоритм решения задачи

алгоритм Интерполяция

Program Lagrange; var i,j,n:integer; lag,xp,z,p:real; x,y:array [1..20] of real begin write('введите число узлов'); readln(n); write('введите точку, в которой ищем значение функции '); readln(xp); for i:=1 to n do begin write ('введите значение',i,'узла и значение функции в нем'); readln(x[i], y[i]); end; lag:=0; for i:=1 to n do begin p:=1; z:=1; for j:=1 to n do if i<>j then begin p:=p*(xp-x[j]); z:=z*(x[i]-x[j]); end; lag:=lag+y[i]*p/z; end; writeln('искомое значение в точке', xp:3,'равно',lag:5:1); end.

Вывод

Полезные ресурсы

Другие документы

Учебный проект Осваиваем Delphi