Программирование на Delphi 7 Лагранж

Автор работы: Пользователь скрыл имя, 23 Мая 2013 в 18:15, курсовая работа

Описание работы

Основная задача (разработать программный продукт, вычисляющий значение функции по заданному значению аргумента) выполняется с помощью средств вычислительной математики. В основе решения задачи лежит вычисление значение функции с помощью интерполяционного полинома Лагранжа. Основные направления выполнения программы:
1.создать модули, предлагающие поэтапное выполнение поставленной задачи;
2.создать модули, выполняющие вычисление правильно, быстро и корректно;
3.разработать интерфейс программы, совместимый с Windows-интерфейсом

Файлы: 1 файл

Документация курсового.doc

— 249.50 Кб (Скачать файл)


ВВЕДЕНИЕ

На ранних этапах развития программирования, когда  программы писались в виде последовательностей машинных команд, какая-либо технология программирования отсутствовала. Первые шаги в разработке технологии состояли в представлении программы в виде последовательности операторов. Написанию последовательности машинных команд предшествовало составление операторной схемы, отражающей последовательность операторов и переходы между ними. Операторный подход позволил разработать первые программы для автоматизации составления программ – так называемые составляющие программы.

При разработке данного программного средства используется объектно-ориентированный подход к технологии программирования, который является инженерно-конструкторской технологией, концентрирующей внимание на процессе решения задачи. Объектно-ориентированный подход предполагает, что при разработке программы должны быть определены классы используемых в программе объектов и построены их описания, затем созданы экземпляры необходимых объектов и определено взаимодействие между ними.

Основная задача (разработать программный продукт, вычисляющий значение функции по заданному значению аргумента) выполняется с помощью средств вычислительной математики. В основе решения задачи лежит вычисление значение функции с помощью интерполяционного полинома Лагранжа. Основные направления выполнения программы:

  1. создать модули, предлагающие поэтапное выполнение поставленной задачи;
  2. создать модули, выполняющие вычисление правильно, быстро и корректно;
  3. разработать интерфейс программы, совместимый с Windows-интерфейсом.

1.ИЗУЧЕНИЕ  ПРЕДМЕТНОЙ ОБЛАСТИ

Одной из важнейших  задач численного анализа является задача интерполяции функции: требуется  восстановить функцию f(x) для всех значений x [a, b] если известны её значения в некотором конечном числе точек этого отрезка. Эти известные значения, как правило, находятся в результате наблюдений или измерений в каком – то эксперименте либо в результате каких – то вычислений.

Интерполяция  применяется во многих задачах, связанных с вычислениями. Укажем некоторые из этих задач. Обработка физического эксперимента – построение приближенных формул по данным вычислительного эксперимента. Здесь возникают нестандартные задачи интерполяции, так как обычно пишутся формулы, возможно, более простой структуры.

Интерполяционные  формулы используются также при  вычислении интегралов, при написании  разностных аппроксимаций для дифференциальных уравнений, на основе интегральных тождеств.

Простейшая  задача интерполяции заключается в следующем: функция непрерывна на интервале и задана некоторыми своими значениями для соответствующих значений аргумента . Полином используется, когда необходимо найти значение этой функции в точке .

Теорема:

Пусть заданы узлы , среди которых нет совпадающих и значения некоторой функции f(x) в этих узлах. Существует один и только один многочлен степени не выше n, принимающий в узлах значения . Введем вспомогательные многочлены(1):

(1)

Это многочлен  степени n, для которого выполняется равенство(2):

(2)

Многочлен называется полиномом Лагранжа.

 

1.1.ПОСТАНОВКА  ЗАДАЧИ

Интерполяционные функции на отрезке по значениям ее в узлах сетка - означает построение другой функции такой, что В более общей постановке задача интерполирования функции состоит в построении не только из условий совпадения значений функций и на стеке , но и совпадения в отдельных узлах производных до какого-то порядка или некоторых других соотношений, связанных и .

Обычно  стоится в следующем виде(3):

  (3)

Где - некоторая заранее выбранная система линейно-независимых функций. Такое интерполирование называется линейным относительно системы , а интерполяционным многочленом по системе .

Выбор системы  определяется свойством класса функций, для приближения которого предназначаются интерполяционные формулы. Например, для приближения - периодической функции на   за  естественно взять тригонометрическую систему функций, для приближения на полу оси ограниченных или возрастающих функции- систему рациональных или показательных функций, учитывающих поведение приближаемых функций на бесконечности и т.д.

Чаще всего  используется алгебраическое  интерполирование(4):

  (4)

Существует  ряд явных представлений алгебраических интерполяционных многочленов. Например, интерполяционный многочлен Лагранжа, который имеет вид(5):

  (5)

В задаче приближения  функции и на всём отрезке  алгебраическое интерполирование высокого порядка выполняется сравнительно редко. Алгебраический интерполяционный процесс не является сходящимся в классе непрерывных на функций. Обычно ограничиваются линейным интерполированием по узлам и на каждом отрезке или квадратичным по трем узлам , , на отрезке .

Интерполирование  функций многих переменных имеет ряд принципиальных и алгебраических трудностей. Например, в случае алгебраической интерполяции интерполяционный многочлен Лагранжа фиксированной степени, вообще говоря, не существует для произвольной схемы различных узлов интерполяции. В частности для функций двух переменных такой многочлен суммарной степени не выше n может быть построен по узлам лишь при условии, что эти узлы не лежат на алгебраической кривой порядка n.

Другой поход  к интерполированию функции многих переменных стоит в том, что сначала интерполируется функция по переменной при фиксированных , потом по следующей переменной при фиксированных . Интерполяционные сплайны для функций многих переменных определяются по многомерной сетке при соответствующих изменениях по аналогии с одномерным случаем.

 

1.2.РЕШЕНИЕ  ЗАДАЧИ ИНТЕРПОЛИРОВАНИЯ ФУНКЦИИ  МЕТОДОМ ЛАГРАНЖА: ОСНОВНАЯ СХЕМА

Пусть функция  задана таблицей, тогда по формуле  многочлена Лагранжа(6) вычислим приближенно функцию какого-нибудь аргумента.

Расчеты по формуле  удобно организовать в виде таблицы (рис.1):

Рис.1 Таблица

2.ПРИМЕР РЕШЕННОЙ ЗАДАЧИ ИНТЕРПОЛИРОВАНИЯ ФУНКЦИИ МЕТОДОМ ЛАГРАНЖА

Функция задана таблицей (рис.2):

Рис.2 Таблица

С помощью многочлена Лагранжа вычислим приближенно F(2,75)

Решение:

Функцию вычисляем  по формуле многочлена Лагранжа(7) и вычисления будем проводить в виде расчетной таблицы (рис.3):

Рис.3 Таблица

Для получения  результата перемножаем два числа  в последней строке: F(2,75)=(-0,288)*(-9,687)=2,79

3.ПРОЕКТИРОВАНИЕ ОБЩЕЙ СТРУКТРУРЫ ПРИЛОЖЕНИЯ

3.1.СТРУКТУРНАЯ СХЕМА

3.2.ДИАГРАММА ВАРИАНТОВ ИСПОЛЬЗОВАНИЯ

4. ТЕХНОЛОГИЯ И СРЕДСТВА СОЗДАНИЯ ПРИЛОЖЕНИЯ

4.1 ДОСТОИНСТВА DELPHI 7

Базовый курс программирования ориентирован на работу в Borland Delphi. Выбор  среды быстрой разработки приложений (RAD) Delphi обусловлен как тем, что это наиболее популярная среда программирования на просторах России, так и несомненными объективными достоинствами Delphi. Среди этих достоинств:

  • простой и мощный язык программирования Pascal;
  • удобная и полная объектная модель;
  • достаточно удобная среда разработки;
  • обширная объектная библиотека VCL;
  • мощные средства разработки приложений баз данных.

Язык программирования Паскаль (Pascal) был создан Н. Виртом в 1968 году специально для обучения студентов. Язык Паскаль представлял собой квинтэссенцию технологий программирования середины 60-х — эпохи создания структурного программирования. Язык был популярен в университетской среде Европы (в том числе и в Советском Союзе). Однако бедная и не вполне удачная система ввода/вывода и отсутствие поддержки разбиения программ на модули не позволили в то время Паскалю выйти за пределы учебных аудиторий. Однако прозрачный и мощный язык послужил основой для многих экспериментов в области языков программирования. В начале 80-х годов появилась система программирования Turbo Pascal фирмы Borland, в которой использовался расширенный диалект языка Паскаль с усовершенствованной системой ввода/вывода и поддержкой модулей. Именно этот диалект языка и стал наиболее распространенным, так как мог быть использован в создании современных больших приложений. В конце 80-х годов в диалект языка Паскаль от Borland были добавлены объектно-ориентированные расширения, а 1992 году Borland Pascal стал поддерживать программирование для MS Windows. При этом Паскаль сохранил простоту и выразительную мощь учебного языка.

Объектно-ориентированные  средства языка Паскаль прошли большой  путь от простейших объектных расширений в TurboPascal 5.5 до современной объектной модели Delphi, не уступающей по своим потенциальным возможностям ни одному объектно-ориентированному языку. Объектная модель Delphi поддерживает все средства которые могут понадобиться при объектно-ориентированном программировании. Кроме того, Delphi поддерживает объектные технологии Microsoft и, следовательно, может использоваться для создания приложений и компонент COM/DCOM, а в последних версиях и dotNET.

Но основным преимуществом Delphi является его среда программирования с визуальным конструктором программ. Эта среда (вместе с объектной библиотекой VCL) позволяет эффективно программировать под MS Windows, не отвлекаясь на выяснение всех деталей Win API, а работать над логикой программы.

С точки зрения профессионального  программиста не менее важно то, что Delphi обладает высокоразвитыми средствами для работы с базами данных. Базы данных позволяют эффективно управлять информацией. Delphi позволяет эффективно создавать приложения, работающие с базами данных.

Мы предлагаем как базовый  курс, являющийся введение в программирование для MS Windows в среде Delphi, так и продвинутый курс, включающий в себя программирование приложений баз данных, работу с XML, создание новых компонентов для Delphi. Возможно также объединение этих двух курсов в один, более длительный курс.

ЗАКЛЮЧЕНИЕ

Во время  выполнения курсовой работы был разработан программное средство, вычисляющее  значение функции по заданному значению аргумента, выполняющегося с помощью средств вычислительной математики. В основе решения задачи лежит вычисление интерполяционным полиномом Лагранжа. Было создано три модуля, которые предлагают поэтапное выполнение задачи; в первом модуле вводятся начальные данные, во втором заполняется таблица со значениями функций и аргументов (это промежуточные точки, на основании которых и строится полином Лагранжа). Третий модуль является основным, использующим данные из второго и третьего модуля для вычислительного процесса. Интерфейс программы совместим с Windows-интерфейсом благодаря тому, что программа, в которой разрабатывалась курсовая работа, – Delphi7 – предоставляет такую возможность и поддерживает именно Windows-интерфейс. Все пункты курсового задания были выполнены, разработанное программное средство выполняет поставленную перед ним задачу.

Благодаря данному курсовому проекту я закрепила теоретические знания по дисциплине "Математически методы" и приобрела навыки по решению задачи интерполирования функции методом Лагранжа на Delphi 7.

СПИСОК  ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  1. Фомин Г.П. Математические методы и модели в коммерческой деятельности. Учебник. – М.: Финансы и статистика, 2005 г.
  2. Степочкина С.А. Курс лекций по вычислительной математике. – 2004 г.
  3. Программирование. Специальный выпуск по объектно-ориентированному программированию. № 6, 2007.

ПРИЛОЖЕНИЕ№1.ЛИСТИНГ ПРОГРАММНОГО ПРОДУКТА

Unit1-Заставка

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, ExtCtrls, jpeg, Buttons;

type

  TForm1 = class(TForm)

    Timer1: TTimer;

    Memo1: TMemo;

    Image1: TImage;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    procedure Timer1Timer(Sender: TObject);

    procedure FormActivate(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

     i:integer;

implementation

  uses Unit2;

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);//устанавливаем таймер для заставки

begin

  i:=i+1;

if i=3 then

begin

Form1.Hide;

Form2.Show;

Timer1.Enabled:=false;

end;

end;

procedure TForm1.FormActivate(Sender: TObject);//автоматическое включение таймера

begin

  i:=0;

Timer1.Enabled:=True;

end;

end.

Unit2-Курсовой проект

unit Unit2;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, Menus, Buttons;

type

  TForm2 = class(TForm)

    Edit1: TEdit;

    MainMenu1: TMainMenu;

    N1: TMenuItem;

    N2: TMenuItem;

    N3: TMenuItem;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    BitBtn1: TBitBtn;

    procedure Edit1KeyPress(Sender: TObject; var Key: Char);

Информация о работе Программирование на Delphi 7 Лагранж