Интерполяция табличной функции по методу Ньютона
Заказать уникальную курсовую работу- 28 28 страниц
- 1 + 1 источник
- Добавлена 18.11.2009
- Содержание
- Часть работы
- Список литературы
- Вопросы/Ответы
Содержание
Задание на курсовую работу.
Интерполяция по Ньютону
Разработка алгоритма решения задачи.
Организация ввода и вывода данных.
Организация контроля ошибочных действий пользователя.
Список литературы.
Приложение 1. Текст кода программы.
Приложение 2. Руководство пользователя программы.
btnSelFileClick(Sender: TObject);
begin
dgrdMain.Options := dgrdMain.Options - [goEditing];
edtCount.Enabled := false;
btnFileName.Enabled:= true;
edtFilename.Enabled := true;
btnLoad.Enabled := true;
end;
procedure TfrmMain.edtCountExit(Sender: TObject);
var j,i:integer;
begin
i:=StrToIntDef(edtCount.Text,0);
if (i<3) then
begin
ShowMessage('Количество узлов в сетке не может быть меньше 3');
edtCount.SetFocus;
exit;
end
else
begin
for j := dgrdMain.RowCount to i do
begin
dgrdMain.Cells[0,j] := InttoStr(j);
dgrdMain.Cells[1,j] := '';
dgrdMain.Cells[2,j] := '';
end;
dgrdMain.RowCount := i+1;
end;
end;
procedure TfrmMain.btnCalculateClick(Sender: TObject);
var
f : TextFile;
n:integer;
minx,miny,maxx,maxy,dx,dy,tx:real;
x,y:real;
i,j: Integer;
ix,iy:integer;
flag:boolean;
rct:TRect;
// Функции пересчёта из вещественных координат в экранные
function CalcIX(const X:real):integer;
begin
Result :=Round((x - minx)*dx);
end;
function CalcIY(const Y:real):integer;
begin
Result :=Round((maxy - y)*dy);
end;
begin
N:= dgrdMain.RowCount-1;
pln.Clear;
for I := 1 to N do
try
j:=1;
x := StrToFloat(dgrdMain.Cells[j,I]);
j:=2;
y := StrToFloat(dgrdMain.Cells[j,I]);
pln.Add(x,y);
if (i=1) then
begin
minx := x;
maxx := x;
miny := y;
maxy := y;
end
else
begin
if (x < minx) then minx := x;
if (x > maxx) then maxx := x;
if (y < miny) then miny := y;
if (y > maxy) then maxy := y;
end
except
ShowMessage (Format('Ошибка в исходных данных Строка %d Столбец %d',[I,j]));
exit;
end;
if not pln.CalculateDelta(i,j)
then
begin
ShowMessage (Format('Ошибка в исходных данных Разность x%d и x%d нулевая',[I,j]));
exit;
end;
// Строим график
x := minx;
if (minx < maxx) and (miny < maxy) then
begin
// Считаем коээффициенты
dx := imgWork.Width/(maxx - minx);
tx := 1/(maxx - minx);
dy := imgWork.Height/(maxy - miny);
y := pln.CalculateY(x,flag);
ix := CalcIX(x);
iy := CalcIY(y);
rct.Left:=0;
rct.Top:=0;
rct.Right:=imgWork.Width;
rct.Bottom:=imgWork.Height;
imgWork.Canvas.FillRect(rct);
imgWork.Canvas.MoveTo(ix,iy);
while (x < maxx) do
begin
x :=x + tx;
y := pln.CalculateY(x,flag);
ix := CalcIX(x);
iy := CalcIY(y);
imgWork.Canvas.LineTo(ix,iy);
end;
end;
for I := 1 to N do
begin
ix := CalcIX(pln.GetNode(i-1).x);
iy := CalcIY(pln.GetNode(i-1).y);
imgWork.Canvas.Rectangle(ix-5,iy-5,ix+5,iy+5);
end;
end;
procedure TfrmMain.btnClearClick(Sender: TObject);
var j:integer;
rct:TRect;
begin
edtCount.Text := '3';
edtFilename.Text := '';
dgrdMain.RowCount := 4;
pln.Clear;
for j := dgrdMain.RowCount-1 downto 1 do
begin
dgrdMain.Cells[0,j] := InttoStr(j);
dgrdMain.Cells[1,j] := '';
dgrdMain.Cells[2,j] := '';
end;
rct.Left:=0;
rct.Top:=0;
rct.Right:=imgWork.Width;
rct.Bottom:=imgWork.Height;
imgWork.Canvas.FillRect(rct);
end;
procedure TfrmMain.btnExitClick(Sender: TObject);
begin
Close;
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
pln := TPolyNome.Create;
dgrdMain.ColCount := 3;
btnClearClick(Sender);
dgrdMain.FixedRows := 1;
dgrdMain.Cells[0,0] := 'i';
dgrdMain.Cells[1,0] := 'Xi';
dgrdMain.Cells[2,0] := 'Yi';
end;
procedure TfrmMain.FormDestroy(Sender: TObject);
begin
pln.Free;
end;
end.
Приложение 2. Руководство пользователя программы.
Порядок работы с программой
Выбрать способ ввода исходных данных переключением радиокнопок:
Из файла
Непосредственный ввод
Если выбран способ “Из файла”, то далее следует ввести имя файла в поле ввода имени файла, или выбрать файл с помощью кнопки “…”
После ввода имени файла, следует нажать кнопку “Загрузка”, чтобы загрузить данные из файла в программу.
Если выбран способ “Непосредственный ввод”, то далее следует ввести количество узлов табличной функции в поле “количество узлов сетки”. Количество узлов не должно быть меньше 3.
После ввода количества узлов, нужно ввести данные узлов в сетку данных, причём во второй столбец следует вводить Xi, а в третий – Yi.
После ввода данных любым способом, для отображения графика нужно нажать кнопку “Расчёт”.
Для очистки графика и вода новых данных нужно нажать кнопку “Очистить”
Для выхода из программы нужно нажать кнопку “Выход”
(1) Формалев В. Ф., Ревизников Д. Л. Численные методы. – Москва: ФИЗМАТЛИТ, 2004. с 106
28
1.Формалев В. Ф., Ревизников Д. Л. Численные методы. – Москва: ФИЗМАТЛИТ, 2004. - 400 с.
Вопрос-ответ:
Каким методом выполняется интерполяция табличной функции в данной программе на курсовую работу?
В данной программе на курсовую работу выполняется интерполяция табличной функции по методу Ньютона.
Что такое интерполяция табличной функции?
Интерполяция табличной функции - это процесс приближения значений функции между заданными точками (табличными значениями) путем построения новой функции, которая проходит через эти точки.
Как организован ввод и вывод данных в программе на курсовую работу?
В программе на курсовую работу ввод и вывод данных организованы с помощью элементов пользовательского интерфейса, таких как текстовые поля и кнопки. Пользователь может выбрать файл и ввести количество точек для интерполяции, после чего программа выполнит интерполяцию по заданным параметрам и выведет результаты.
Как организован контроль ошибочных действий пользователя в программе на курсовую работу?
В программе на курсовую работу контроль ошибочных действий пользователя организован с помощью проверки введенных значений на корректность и вывода соответствующих сообщений об ошибке. Если пользователь ввел некорректные данные, программа уведомит его об этом и предложит ввести значения заново.
Какие компоненты пользовательского интерфейса используются в программе на курсовую работу?
В программе на курсовую работу используются компоненты пользовательского интерфейса, такие как текстовые поля (для ввода количества точек и имени файла) и кнопки (для выбора файла и запуска интерполяции).
Что такое интерполяция табличной функции?
Интерполяция табличной функции - это метод численного аппроксимирования, при котором по набору заданных значений функции на равноотстоящих точках (таблице) строится аппроксимирующая функция, принимающая заданные значения в этих точках.
Какой метод используется для интерполяции в данной статье?
В данной статье используется метод Ньютона для интерполяции табличной функции. Он основан на интерполяционном полиноме Ньютона, который строится с использованием разделенных разностей.
Что такое разделенные разности?
Разделенные разности - это числа, вычисляемые по заданной таблице значений функции и используемые для построения интерполяционного полинома Ньютона. Они определяются рекурсивно и позволяют получить значения интерполяционного полинома в произвольных точках.
Как организован ввод и вывод данных в программе?
В программе организован ввод данных с помощью элементов интерфейса, таких как текстовые поля или кнопки выбора файлов. Для вывода данных используются различные методы, например, вывод на экран или запись в файл.
Как осуществляется контроль ошибочных действий пользователя?
Контроль ошибочных действий пользователя может быть реализован с помощью проверки введенных данных на соответствие заданным форматам или ограничениям. Также можно предусмотреть вывод сообщений об ошибках и подсказок для пользователя.
Как организовать ввод и вывод данных в программе по интерполяции табличной функции?
Для организации ввода и вывода данных в программе по интерполяции табличной функции можно использовать различные подходы. Например, можно предусмотреть возможность ввода необходимых данных с помощью текстового файла или через интерактивный интерфейс программы. Для вывода данных можно использовать текстовый файл, графический интерфейс или другие способы, удобные для пользователя.
Как организовать контроль ошибочных действий пользователя в программе по интерполяции табличной функции?
Для организации контроля ошибочных действий пользователя в программе по интерполяции табличной функции можно использовать различные методы. Например, можно предусмотреть проверку введенных пользователем данных на корректность и выдавать соответствующие сообщения об ошибке в случае некорректных данных. Также можно предусмотреть возможность отмены последнего действия пользователя или возврата к предыдущему состоянию программы в случае совершения ошибки.