Аппроксимация табулированных функций

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 30.09.2012
Размер файла 1,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

ОГЛАВЛЕНИЕ

  • ВВЕДЕНИЕ
  • 1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
    • 1.1 Постановка задачи
    • 1.2 Математическая модель
    • 1.3 Блок-схема алгоритма
  • 2.ПРАКТИЧЕСКАЯ ЧАСТЬ
    • 2.1 Решение задачи в среде Delphi
    • 2.2 Решение задачи в среде MathCad
      • 2.2.1 Вторая степень
      • 2.2.2 Третья степень
      • 2.2.3 Четвертая степень
  • 2.3 Анализ полученных результатов
  • ЗАКЛЮЧЕНИЕ
  • ЛИТЕРАТУРА
  • ПРИЛОЖЕНИЯ

ВВЕДЕНИЕ

В научных исследованиях аппроксимация применяется для описания, анализа, обобщения и дальнейшего использования эмпирических результатов. Аппроксимация (от латинского "approximate" -"приближаться")- приближенное выражение каких-либо математических объектов (например, чисел или функций) через другие более простые, более удобные в пользовании или просто более известные.

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

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

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

- произвести формулировку задачи с конкретными данными;

- провести предварительный анализ задачи, описать математический аппарат, который будет использоваться для её решения;

- в соответствии с определенным методом решения разработать алгоритм решения задачи и представить его в виде блок-схемы, снабжённой описанием;

- разработать программу в среде Delphi, реализующую построенный алгоритм;

- решить задачу с помощью интегрированного пакета MathCad или с помощью табличного процессора MS Excel;

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

- сделать общие выводы по работе.

Задача решалась средствами Delphi и Mathcad. Оформление курсовой работы производилось в редакторе Microsoft Word, входящем в комплект Microsoft Office.

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

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

ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

1.1 Постановка задачи

1. Разработать алгоритм нахождения коэффициентов трех аппроксимирующих полиномов (многочленов) вида

Pn(x)=A0+A1x+A2x2+…+Amxn (1.1)

Для табулированной функции lny=f(x) в соответствии с данными таблицы 1.1. Построить блок-схему алгоритма. Создать программу на языке Pascal (Delphi), реализующую разработанный алгоритм.

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

(1.2)

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

4. Решить задачу средствами MathCad.

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

Таблица 1.1 - Вариант задания

Вариант

Вид функции

Степень многочлена

24

2,3,4

Таблица 1.2 - Исходные данные

n

x

lny

1

0,1

1.877937165

2

0,3

1.891604804

3

0,5

1.921324674

4

0,7

1.993338843

5

0,9

2.132982309

6

1,1

2.349468679

7

1,3

2.618125494

8

1,5

2.928523524

9

1,7

3.253083996

10

1,9

3.57682995

11

2,1

3.890390705

12

2,3

4.189200093

13

2,5

4.471867339

14

2,7

4.73821396

15

2,9

4.989071116

16

3,1

5.225370259

17

3,3

5.448244856

18

3,5

5.658715371

19

3,7

5.857904583

20

3,9

6.046733677

21

4,1

6.226022703

22

4,3

6.396562921

23

4,5

6.559048505

24

4,7

6.714097712

25

4,9

6.862255695

26

5,1

7.004019549

27

5,3

7.139826857

28

5,5

7.270083215

29

5,7

7.395144401

30

5,9

7.515328231

31

6,1

7.630932025

32

6,3

7.742224055

33

6,5

7.849436916

34

6,7

7.952798

35

6,9

8.052503419

36

7,1

8.148734809

37

7,3

8.241658375

38

7,5

8.331432126

39

7,7

8.418190202

40

7,9

8.50206534

1.2 Математическая модель

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

При аналитическом исследовании взаимосвязи между двумя величинами x и y производят ряд наблюдений и в результате получается таблица значений 1.3:

Таблица 1.3- таблица получаемых значений

x

y

Эта таблица обычно получается как итог каких-либо экспериментов, в которых (независимая величина) задается экспериментатором, а получается в результате опыта. Между величинами x и y существует функциональная зависимость, но ее аналитический вид обычно неизвестен, поэтому возникает практически важная задача - найти эмпирическую формулу (1.3)

(1.3)

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

Если в эмпирическую формулу (1.3) подставить исходные , то получим теоретические значения , где .

Разности называются отклонениями и представляют собой расстояния по вертикали от точек до графика эмпирической функции.

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

(1.4)

будет минимальной.

Поясним геометрический смысл метода наименьших квадралтов.

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

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

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

Для того, чтобы найти набор коэффициентов , которые доставляют минимум функции S , определяемой формулой (1.4), используем необходимое условие экстремума функции нескольких переменных - равенство нулю частных производных. В результате получим нормальную систему для определения коэффициентов :

(1.5)

Таким образом, нахождение коэффициентов сводится к решению системы (1.5).

Эта система упрощается, если эмпирическая формула (1.3) линейна относительно параметров , тогда система (1.5) - будет линейной.

Конкретный вид системы (1.5) зависит от того, из какого класса эмпирических формул мы ищем зависимость (1.3). В случае линейной зависимости система (1.5) примет вид:

(1.6)

В случае квадратичной зависимости система (1.5) примет вид:

(1.7)

Эта линейная система может быть решена любым известным методом (методом Гаусса, простых итераций, формулами Крамера).

1.3 Блок-схема алгоритма

Рисунок 1. 1- Блок-схема алгоритма

2. ПРАКТИЧЕСКАЯ ЧАСТЬ.

2.1 Решение задачи в среде Delphi

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

Рисунок 2.1 - Интерфейс программы в Delphi

Вычисление производится путем нажатия кнопки "Вычислить". Произвести проверку заданного значения Х можно путем нажатия кнопки "Проверка", предварительно введя значение в поле "Значение Х" и указав степень многочлена. Прекращение работы программы производится путем нажатия кнопки "Выход".

Основной блок решения имеет вид:

procedure TForm1.ZXC(n:integer);

begin

//Обнуляем массивы

for i:=0 to 14 do T[i]:=0;

for i:=0 to 7 do begin C[i]:=0; A[i]:=0 end;

for i:=0 to 7 do

for j:=0 to 8 do B[i,j]:=0;

//Вводим исходные данные

for i:=1 to 40 do begin

Xi[i]:=Strtofloat(StringGrid1.Cells[1,i]);

Yi[i]:=Strtofloat(StringGrid1.Cells[2,i]); end;

//Вычисляем коэффициенты Т и С

for i:=1 to 2*n do begin

St:=0;

for j:=1 to 40 do

St:=St+exp(i*ln(abs(Xi[j])));

T[i]:=St;

end;

for i:=0 to n do begin

St:=0;

for j:=1 to 40 do

St:=St+(exp(i*ln(abs(Xi[j]))))*yi[j];

C[i]:=St;

end;

//end;

T[0]:=40;

//Формируем расширенную матрицу системы уравнений

for i:=0 to n do

for j:=0 to n do

B[i,j]:=T[j+i];

for i:=0 to n do B[i,n+1]:=C[i];

//Приводим её к треугольному виду (прямой ход Гаусса)

for k:=0 to n-1 do

for i:=k to n do begin

Bik:=B[i,k];

for j:=k to n+1 do

if i=k then B[i,j]:=B[i,j]/Bik

else B[i,j]:=B[i,j]/Bik-B[k,j];

end;

//Вычисляем и выводим в текстовое поле коэффициенты

Memo1.Lines.Add('Коэффициенты полинома степени '+inttostr(n));

for i:=n downto 0 do

A[i]:=(B[i,n+1]-B[i,1]*A[1]-B[i,2]*A[2]-B[i,3]*A[3]-B[i,4]*A[4]-B[i,5]*A[5]-B[i,6]*A[6]-B[i,7]*A[7]-B[i,8]*A[8])/B[i,i];

end;

Таблица 2.1 - Перечень используемых в программе идентификаторов

Имя

Тип

Описание

В

extended

Расширенная матрица системы уравнений

Yi, Xi

extended

Исходные значения

Dt

extended

Среднеквадратическое отклонение

uravn

string

уравнение

plus

string

Выполняет функцию плюса в уравнении

n

real

Степень полинома

А,С,Т

extended

Параметры

2.2 Решение задачи в среде MathCad

2.2.1 Вторая степень

2.2.2 Третья степень

2.2.3 Четвертая степень

Вычисляем среднеквадратичные отклонения

Полностью расчеты представлены в ПРИЛОЖЕНИЕ Б.

Анализ полученных результатов

В ходе разработки данного курсового проекта на тему: "Аппроксимация табулированных функций методом наименьших квадратов", получили результаты, которые выполнены с большой точностью, как в среде Delphi, так и в среде MathCad, которые удовлетворяют условию поставленной задачи.

Таблица 2.2 - Коэффициенты полинома степени 2

Номер коэффициента

Delphi

MathCad

A[0]

1,0843876357207

1,08439

A[1]

1,54214256970168

1,54214

A[2]

0,0763092125300307

1,54214

Среднеквадратичное отклонение

0,169951874447113

0,169951874

Таблица 2.3 - Коэффициенты полинома степени 3

Номер коэффициента

Delphi

MathCad

A[0]

1,28511478603549

1,285114786

A[1]

1,24159950951332

1,24159951

A[2]

0,0175762646985923

0,017576265

A[3]

-0,00782378976905192

-0,00782379

Среднеквадратичное отклонение

0,152324855601187

0,152324856

Таблица 2.4 - Коэффициенты полинома степени 4

Номер коэффициента

Delphi

MathCad

A[0]

1,67250429578013

1,6725

A[1]

0,278682580773896

0,27868

A[2]

0,558363054574022

0,55836

A[3]

-0,112929333214802

-0,11293

A[4]

0,0065690964653594

0,00657

Среднеквадратичное отклонение

0,0842138821372893

0,084213882

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

ЗАКЛЮЧЕНИЕ

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

Была разработана компьютерная модель в среде Delphi и MathCad. В результате выполнения работы изучили методы аппроксимации, составили блок-схему, оценили полученные результаты.

ЛИТЕРАТУРА

1. Наранович О.И., Скобля С.Г. "Методические указания по выполнению курсового проекта ".

2. Лапчик М.П. Численные методы: Учеб. пособие для студ. вузов /М.П. Лапчик, М.И. Рагулина, Е.Е. Хеннер; Под ред. М.П. Лапчика. - М.: Издательский центра "Академия", 2004.

3. Наранович О.И., Скобля С.Г. Информатика: методические указания и задания к лабораторным работам для студентов 2-го курса дневной формы обучения специальностей 40 01 02, 36 01 03, 36 01 01. Часть 3. -Барановичи: БарГУ, 2005.

4. Культин Н.Б. Основы программирования в Delphi 7. - СПб.: БХВ.- Петербург, 2003.

5. Фаронов В.В. Турбо Паскаль 7.0: Практика программирования: Учеб. пособие. - М.: Нолидж, 1997.

алгоритм аппроксимирующий программа mathcad

ПРИЛОЖЕНИЕ А

Полный код модуля программы в среде Delphi имеет вид:

unit Unit1;

interface

uses

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

Dialogs, TeEngine, Series, StdCtrls, ExtCtrls, TeeProcs, Chart, Grids;

type

TForm1 = class(TForm)

StringGrid1: TStringGrid;

Chart1: TChart;

Memo1: TMemo;

Edit1: TEdit;

Edit3: TEdit;

Button1: TButton;

Label1: TLabel;

Label3: TLabel;

Button2: TButton;

Button3: TButton;

Label4: TLabel;

Series1: TLineSeries;

Series2: TLineSeries;

Series3: TLineSeries;

Series4: TLineSeries;

procedure ZXC(n:integer);

procedure ASD(n:integer);

procedure FormCreate(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

T:array [0..14] of extended;

Yi,Xi,C,A:array[0..41] of extended;

B:array [0..7,0..8] of extended;

i,j,k,s:integer;

Y,St,Bik,Dt:extended;

uravn,plus:string;

implementation

{$R *.dfm}

procedure TForm1.ZXC(n:integer);

begin

//Обнуляем массивы

for i:=0 to 14 do T[i]:=0;

for i:=0 to 7 do begin C[i]:=0; A[i]:=0 end;

for i:=0 to 7 do

for j:=0 to 8 do B[i,j]:=0;

//Вводим исходные данные

for i:=1 to 40 do begin

Xi[i]:=Strtofloat(StringGrid1.Cells[1,i]);

Yi[i]:=Strtofloat(StringGrid1.Cells[2,i]); end;

//Вычисляем коэффициенты Т и С

for i:=1 to 2*n do begin

St:=0;

for j:=1 to 40 do

St:=St+exp(i*ln(abs(Xi[j])));

T[i]:=St;

end;

for i:=0 to n do begin

St:=0;

for j:=1 to 40 do

St:=St+(exp(i*ln(abs(Xi[j]))))*yi[j];

C[i]:=St;

end;

//end;

T[0]:=40;

//Формируем расширенную матрицу системы уравнений

for i:=0 to n do

for j:=0 to n do

B[i,j]:=T[j+i];

for i:=0 to n do B[i,n+1]:=C[i];

//Приводим её к треугольному виду (прямой ход Гаусса)

for k:=0 to n-1 do

for i:=k to n do begin

Bik:=B[i,k];

for j:=k to n+1 do

if i=k then B[i,j]:=B[i,j]/Bik

else B[i,j]:=B[i,j]/Bik-B[k,j];

end;

//Вычисляем и выводим в текстовое поле коэффициенты

Memo1.Lines.Add('Коэффициенты полинома степени '+inttostr(n));

for i:=n downto 0 do

A[i]:=(B[i,n+1]-B[i,1]*A[1]-B[i,2]*A[2]-B[i,3]*A[3]-B[i,4]*A[4]-B[i,5]*A[5]-B[i,6]*A[6]-B[i,7]*A[7]-B[i,8]*A[8])/B[i,i];

end;

procedure TForm1.ASD(n:integer);

begin

ZXC(n);

for i:=0 to n do

Memo1.Lines.Add('A['+inttostr(i)+']='+floattostr(A[i]));

Memo1.Lines.Add('Уравнение:');

uravn:='';

for i:=0 to n do

begin

if a[i]>0 then

plus:='+'

else plus:='';

uravn:=uravn+plus+floattostrf(A[i],fffixed,8,5)+'*x^'+floattostr(i)+' ';

end;

Memo1.Lines.Add('y='+uravn);

//Вычисляем среднеквадратичное отклонение

//И строим графики

Chart1.Series[3].Clear;

Memo1.Lines.Add('Среднеквадратичное отклонение');

Dt:=0;

case n of

2:s:=0;

3:s:=1;

4:s:=2;

end;

for i:=1 to 40 do begin

Xi[i]:=Strtofloat(StringGrid1.Cells[1,i]);

Yi[i]:=Strtofloat(StringGrid1.Cells[2,i]);

Y:=0;

for j:=0 to n do begin

St:=1;

for k:=1 to j do St:=St*Xi[i];

Y:=Y+A[j]*St

end;

Dt:=Dt+sqr(Y-Yi[i]);

Chart1.Series[s].AddXY(Xi[i],Y);

Chart1.Series[3].AddXY(Xi[i],Yi[i]);

end;

Dt:=sqrt(Dt/40);

Memo1.Lines.Add(floattostr(Dt));

Memo1.Lines.Add('');

end;

procedure TForm1.FormCreate(Sender: TObject);

var i:byte;

h,n,l,j:real;

begin

stringgrid1.Cells[1,0]:='Xi';

stringgrid1.Cells[2,0]:='ln|Yi|';

StringGrid1.Cells[3,0]:='Yi';

for i:=1 to 40 do

stringgrid1.Cells[0,i]:=inttostr(i);

stringgrid1.Cells[1,1]:='0,1'; stringgrid1.Cells[2,1]:=FloatToStr(ln(6.54));

stringgrid1.Cells[1,2]:='0,3'; stringgrid1.Cells[2,2]:=FloatToStr(ln(6.63));

stringgrid1.Cells[1,3]:='0,5'; stringgrid1.Cells[2,3]:=FloatToStr(ln(6.83));

stringgrid1.Cells[1,4]:='0,7'; stringgrid1.Cells[2,4]:=FloatToStr(ln(7.34));

stringgrid1.Cells[1,5]:='0,9'; stringgrid1.Cells[2,5]:=FloatToStr(ln(8.44));

stringgrid1.Cells[1,6]:='1,1'; stringgrid1.Cells[2,6]:=FloatToStr(ln(10.48));

stringgrid1.Cells[1,7]:='1,3'; stringgrid1.Cells[2,7]:=FloatToStr(ln(13.71));

stringgrid1.Cells[1,8]:='1,5'; stringgrid1.Cells[2,8]:=FloatToStr(ln(18.7));

stringgrid1.Cells[1,9]:='1,7'; stringgrid1.Cells[2,9]:=FloatToStr(ln(25.87));

stringgrid1.Cells[1,10]:='1,9'; stringgrid1.Cells[2,10]:=FloatToStr(ln(35.76));

stringgrid1.Cells[1,11]:='2,1'; stringgrid1.Cells[2,11]:=FloatToStr(ln(48.93));

stringgrid1.Cells[1,12]:='2,3'; stringgrid1.Cells[2,12]:=FloatToStr(ln(65.97));

stringgrid1.Cells[1,13]:='2,5'; stringgrid1.Cells[2,13]:=FloatToStr(ln(87.52));

stringgrid1.Cells[1,14]:='2,7'; stringgrid1.Cells[2,14]:=FloatToStr(ln(114.23));

stringgrid1.Cells[1,15]:='2,9'; stringgrid1.Cells[2,15]:=FloatToStr(ln(146.8));

stringgrid1.Cells[1,16]:='3,1'; stringgrid1.Cells[2,16]:=FloatToStr(ln(185.93));

stringgrid1.Cells[1,17]:='3,3'; stringgrid1.Cells[2,17]:=FloatToStr(ln(232.35));

stringgrid1.Cells[1,18]:='3,5'; stringgrid1.Cells[2,18]:=FloatToStr(ln(286.78));

stringgrid1.Cells[1,19]:='3,7'; stringgrid1.Cells[2,19]:=FloatToStr(ln(349.99));

stringgrid1.Cells[1,20]:='3,9'; stringgrid1.Cells[2,20]:=FloatToStr(ln(422.73));

stringgrid1.Cells[1,21]:='4,1'; stringgrid1.Cells[2,21]:=FloatToStr(ln(505.74));

stringgrid1.Cells[1,22]:='4,3'; stringgrid1.Cells[2,22]:=FloatToStr(ln(599.78));

stringgrid1.Cells[1,23]:='4,5'; stringgrid1.Cells[2,23]:=FloatToStr(ln(705.6));

stringgrid1.Cells[1,24]:='4,7'; stringgrid1.Cells[2,24]:=FloatToStr(ln(823.94));

stringgrid1.Cells[1,25]:='4,9'; stringgrid1.Cells[2,25]:=FloatToStr(ln(955.52));

stringgrid1.Cells[1,26]:='5,1'; stringgrid1.Cells[2,26]:=FloatToStr(ln(1101.05));

stringgrid1.Cells[1,27]:='5,3'; stringgrid1.Cells[2,27]:=FloatToStr(ln(1261.21));

stringgrid1.Cells[1,28]:='5,5'; stringgrid1.Cells[2,28]:=FloatToStr(ln(1436.67));

stringgrid1.Cells[1,29]:='5,7'; stringgrid1.Cells[2,29]:=FloatToStr(ln(1628.06));

stringgrid1.Cells[1,30]:='5,9'; stringgrid1.Cells[2,30]:=FloatToStr(ln(1835.97));

stringgrid1.Cells[1,31]:='6,1'; stringgrid1.Cells[2,31]:=FloatToStr(ln(2060.97));

stringgrid1.Cells[1,32]:='6,3'; stringgrid1.Cells[2,32]:=FloatToStr(ln(2303.59));

stringgrid1.Cells[1,33]:='6,5'; stringgrid1.Cells[2,33]:=FloatToStr(ln(2564.29));

stringgrid1.Cells[1,34]:='6,7'; stringgrid1.Cells[2,34]:=FloatToStr(ln(2843.52));

stringgrid1.Cells[1,35]:='6,9'; stringgrid1.Cells[2,35]:=FloatToStr(ln(3141.65));

stringgrid1.Cells[1,36]:='7,1'; stringgrid1.Cells[2,36]:=FloatToStr(ln(3459));

stringgrid1.Cells[1,37]:='7,3'; stringgrid1.Cells[2,37]:=FloatToStr(ln(3795.83));

stringgrid1.Cells[1,38]:='7,5'; stringgrid1.Cells[2,38]:=FloatToStr(ln(4152.36));

stringgrid1.Cells[1,39]:='7,7'; stringgrid1.Cells[2,39]:=FloatToStr(ln(4528.7));

stringgrid1.Cells[1,40]:='7,9'; stringgrid1.Cells[2,40]:=FloatToStr(ln(4924.93));

stringgrid1.Cells[3,1]:='6,54';

stringgrid1.Cells[3,2]:='6,63';

stringgrid1.Cells[3,3]:='6,83';

stringgrid1.Cells[3,4]:='7,34';

stringgrid1.Cells[3,5]:='8,44';

stringgrid1.Cells[3,6]:='10,48';

stringgrid1.Cells[3,7]:='13,71';

stringgrid1.Cells[3,8]:='18,7';

stringgrid1.Cells[3,9]:='25,87';

stringgrid1.Cells[3,10]:='35,76';

stringgrid1.Cells[3,11]:='48,93';

stringgrid1.Cells[3,12]:='65,97';

stringgrid1.Cells[3,13]:='87,52';

stringgrid1.Cells[3,14]:='114,23';

stringgrid1.Cells[3,15]:='146,8';

stringgrid1.Cells[3,16]:='185,93';

stringgrid1.Cells[3,17]:='232,35';

stringgrid1.Cells[3,18]:='286,78';

stringgrid1.Cells[3,19]:='349,99';

stringgrid1.Cells[3,20]:='422,73';

stringgrid1.Cells[3,21]:='505,74';

stringgrid1.Cells[3,22]:='599,78';

stringgrid1.Cells[3,23]:='705,6';

stringgrid1.Cells[3,24]:='823,94';

stringgrid1.Cells[3,25]:='955,52';

stringgrid1.Cells[3,26]:='1101,05';

stringgrid1.Cells[3,27]:='1261,21';

stringgrid1.Cells[3,28]:='1436,67';

stringgrid1.Cells[3,29]:='1628,06';

stringgrid1.Cells[3,30]:='1835,97';

stringgrid1.Cells[3,31]:='2060,97';

stringgrid1.Cells[3,32]:='2303,59';

stringgrid1.Cells[3,33]:='2564,29';

stringgrid1.Cells[3,34]:='2843,52';

stringgrid1.Cells[3,35]:='3141,65';

stringgrid1.Cells[3,36]:='3459';

stringgrid1.Cells[3,37]:='3795,83';

stringgrid1.Cells[3,38]:='4152,36';

stringgrid1.Cells[3,39]:='4528,7';

stringgrid1.Cells[3,40]:='4924,93';

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

ASD(2);

ASD(3);

ASD(4);

end;

procedure TForm1.Button1Click(Sender: TObject);

var t,x,y:real;

z,i:integer;

begin

x:=strtofloat(edit1.text);

z:=7;

ZXC(z);

y:=0;

for i:=0 to z do

y:=y+A[i]*exp(i*ln(x));

edit3.text:=floattostr(y);

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

close

end;

end.

ПРИЛОЖЕНИЕ Б

Исходные данные

Вычисляем коэффициенты системы уравнений

Определяем матрицу коэффициентов и матрицу свободных членов системы

Строим графики полиномов

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.