Составление вычислительных алгоритмов и программ

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

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

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

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

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

1

Введение

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

Для нахождения аналитической взаимосвязи между двумя величинами M и h производят ряд наблюдений; в результате получается таблица измеренных значений.

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

Если между величинами M и h существует некоторая функциональная зависимость, но ее аналитический вид неизвестен, то возникает практическая задача - найти эмпирическую формулу

, (1)

где -- коэффициенты.

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

В курсовой работе рассматриваются методы по составлению вычислительных алгоритмов и программ в своей основной специальности “Горно-транспортные машины и оборудование”. Исходные данные заданы в виде двух одномерных табличных массивов. Таблица представляет собой итог экспериментально полученных величин, в результате работы исполнительного органа угольного комбайна, называемых эмпирическими.

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

Горный комбайн (Рис. 1.) состоит из исполнительного органа (для отбойки, разрушения массива горных пород), погрузочного органа, роль которого в ряде случаев выполняет тот же исполнительный орган (для погрузки отбитой горной массы на транспорт), механизма передвижения, приводных двигателей, передаточных механизмов, органов управления и устройств для пылеподавления (оросительные системы) и пылеулавливания.

Рис. 1. Очистной комбайн узкозахватный типа с барабанным исполнительным органом для выемки пологих пластов.

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

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

· шнековые (с горизонтальной осью вращения), разрушающие массив резанием с поверхности забоя и перемещающие вдоль оси шнека отдельные куски горной массы на конвейер

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

· шарошечные, разрушающие массив системой шарошек

Исполнительный орган горного комбайна в ряде случаев может быть комбинированным (например, буровой и барабанный, планетарный и шнековый).

При проведении испытаний исполнительного органа угольного комбайна получена следующая зависимость момента нагрузки М от толщины среза h.

Таблица 1

Зависимость момента нагрузки М [кг·м] исполнительного органа угольного комбайна от толщины среза h [см].

h i

M i

h i

M i

h i

M i

h i

M i

h i

M i

0,1

290

0,74

1055

1,32

1320

1,96

1550

2,64

1780

0,22

525

0,87

1135

1,47

1380

2,09

1593

2,78

1825

0,35

750

0,98

1187

1,61

1445

2,23

1662

2,91

1865

0,48

870

1,11

1256

1,73

1496

2,42

1705

3,02

1910

0,62

975

1,22

1275

1,85

1505

2,55

1745

3,13

1950

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

Рис. 2. График зависимости таблично заданных значений M и h.

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

Решение в MS Excel

Аппроксимация эмпирических данных линейной зависимостью

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

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

где: a1, a2 - коэффициенты аппроксимации, n = 25.

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

Подробные вычисления по нахождению коэффициента корреляции представлены в приложении 4 и 5.

Подставив, полученные коэффициенты в уравнение (1) получим:

M=633,271+450,674h (1)

и построим график с наложением эмпирических данных:

Рис.2 .График имперических данных и теоретической линейной зависимости.

Аппроксимация эмпирических данных квадратичной зависимостью

Составляем матрицу А. Коэффициенты a1, a2 и a3 вычисляем по формуле

=[А-1]*.

Три составляющие вектора будут искомыми коэффициентами a1, a2 и a3. Согласно таблице 3 матрицу [А] составляем из левых частей уравнений системы, а вектор из правых.

Подробные вычисления по нахождению коэффициента аппроксимации представлены в приложении 3.

Обратную матрицу находим по формуле =МОБР(B50:D52), а вектор c коэффициентами по формуле =МУМНОЖ(B54:D56;E50:E52 Ввод матрицы проводится нажатием комбинации клавиш Ctrl+Shift+ENTER.

В матрице с ответами найдены коэффициенты a1=750,692, a2=425,28и a3=-12,2693. Подставим эти коэффициенты в многочлен второй степени и получим формулу аппроксимированной функции Mкв=750,629 + 425,28h - 12,2693h2. Вернемся к таблице 3.2. В ячейке L1 пишем формулу =$E$50+$E$51*B4+$E$52*G4. Эту формулу размножаем по всему столбцу. Получили значения квадратичной аппроксимированной линии. С помощью “мастера диаграмм”, построим график этой зависимости:

Рис.3 .График эмпирических данных и теоретической степенной зависимости

Элементы теории корреляции

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

Коэффициент корреляции вычисляется по формуле:

(4)

где -- средние арифметические значения случайных величин h и M .

Коэффициент корреляции по абсолютной величине не превосходит 1. Чем ближе к 1, тем теснее линейная связь между h и M, и тем более справедлива аппроксимация таблично заданной функции линейной зависимостью.

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

Расчет коэффициента корреляции r в Mathcad, а так же расчетные формулы приведены в Приложении 1.

Из приложения видно, что коэффициент корреляции r=0.964846<1.Можно сделать вывод, что применима линейная аппроксимация между случайными величинами h и M. Следовательно, выбор линейной функции для аппроксимации был сделан верно.

Решение задачи в Mathcad

Аппроксимация линейной функцией

Уравнение аппроксимируемой линии первой степени будет иметь вид:

(5)

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

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

, (6)

где -- коэффициенты аппроксимации.

Матрицу A составляем из коэффициентов левой части уравнения системы, а вектор из правой. Для нахождения коэффициентов используем метод:

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

Рассчитаем обратную матрицу с помощью функции INVERSE в MathCAD

Получим:

Рассчитаем неизвестные коэффициенты:

Подставим эти коэффициенты в линейную функцию:

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

Рис. 3 График эмпирических данных и теоретической линейной функции.

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

Аппроксимация квадратичной функции

Для случая квадратичной зависимости

,

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

где k = 25, - коэффициенты аппроксимации, hi - i-ые значения толщины среза, Mi - i-ые значения момента нагрузки исполнительного органа угольного комбайна.

Матрицу A составляем из коэффициентов левой части уравнения системы, а вектор из правой. Для нахождения коэффициентов используем метод:

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

Рассчитаем обратную матрицу с помощью функции INVERSE в MathCAD

Получим:

Рассчитаем неизвестные коэффициенты:

эти коэффициенты в квадратичную функцию:

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

Рис. 4 График эмпирических данных и теоретической полиноминальной функции второй степени.

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

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

Чтобы выяснить насколько точно, построенная кривая отражает эмпирические данные, вводится характеристика - коэффициент детерминированности. Поясним подробно, что означает этот коэффициент и как он определяется.

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

Вычислим сумму квадратов отклонений теоретических значений функции от эмпирических данных, обозначив эту сумму Кост.

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

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

Эта величина Kрегр характеризует разброс теоретических данных относительно среднего значения.

В теории корреляции доказано следующее равенство:

Обозначим:, тогда, очевидно, справедливо следующее равенство: Kполн = Kрегр + Kост .

Коэффициент детерминированности R2 определяется по формуле:

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

Вычислим сумму квадратов отклонений теоретических значений квадратичной функции от эмпирических данных в MathCad , обозначив эту сумму K_ost:

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

Вычислим регрессионную сумму квадратов, обозначив эту сумму K_req:

Эта величина K_req характеризует разброс теоретических данных относительно среднего значения.

Cправедливо следующее равенство:

K_pol:=K_ost + K_req

Коэффициент детерминированности K_determ определяется по формуле:

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

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

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

Решение задачи в среде Turbo Pascal

алгоритм программирование аппроксимация функция

Вычислим приближённые функции методом наименьших квадратов в среде программирования Turbo Pascal. Сформируем систему линейных алгебраических уравнений, и решим методом Гаусса.

Алгоритм программы Turbo Pascal для вычисления коэффициентов линейной функции, приближённой к экспериментальным данным:

Блок-схема 1

Алгоритм программы Turbo Pascal для вычисления коэффициентов квадратичной функции, приближённой к экспериментальным данным:

Блок-схема 2

Для составления СЛАУ необходимо вычислить суммы, являющиеся элементами матрицы коэффициентов.

Напишем программу, вычисляющую суммы.

Описание программы

Рассмотрим наиболее важные функции и процедуры, используемые для вычисления сумм (элементов матрицы коэффициентов) квадратичной функции:

Процедура ASSIGN используется для связывания файловой переменной с

именем файла. В общем виде записывается следующим образом:

ASSIGN (<файловая переменная>, <имя файла или логическое устройство>);

Конкретно в курсовой работе процедура ASSIGN представлена в следующем виде:

assign(fw,'gaus.txt');

assign(fm,kursovik.txt');

На языке Turbo Pascal имеются три различных оператора, с помощью которых можно запрограммировать повторяющиеся фрагменты программ.

В данной программе используется счётный оператор цикла FOR., который используется для вычисления сумм всех чисел от 1 до n. В общем виде записывается следующим образом:

FOR <параметр_цикла> := <начальное_значение> ТО <конечное_значение> DO <оператор>

FOR, TO, DO - зарезервированные слова (для, до, выполнить).

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

FOR i:=1 TO 25 DO

begin

a1:=a1+X1[i]; {для x(i)}

b1:=b1+Y1[i]; {для y(i)}

c1:=c1+sqr(X1[i]); {для x(i)2}

d1:=d1+X1[i]*Y1[i]; {для x(i)y(i)}

e1:=e1+X1[i]*X1[i]*X1[i]; {для x(i)3}

f1:=f1+X1[i]*X1[i]*X1[i]*X1[i]; {для x(i)4}

g1:=g1+X1[i]*X1[i]*Y1[i]; {для x(i)2y(i)}

end;

Решение СЛАУ методом Гаусса

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

(11)

Предположим, что не равно нулю. Введем (n-i) множителей

(12)

и вычтем из каждого i-го уравнения первое, помноженное на .

Обозначая (13)

легко убедится, что для всех уравнений, начиная со второго,

. (14)

Преобразованная система уравнений запишется в следующем виде:

(15)

Аналогичным образом исключим х2 из последних (n-2) уравнений, получив новые коэффициенты. Эту операцию будем проводить пока система не примет вид:

(16)

Обратный ход. Он состоит в нахождении значений системы по формулам:

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

,

далее находим

и из 1-го уравнения системы вычисляем:

Вывод

В курсовой работе рассмотрено два варианта теоретической зависимости момента нагрузки M [кг·м] исполнительного органа угольного комбайна от толщины среза h [см] в MathCad и на языке программирования Turbo Pascal 7.0. Вычисления независимых расчётов сходятся, следовательно, - расчёты верны.

В результате получились следующие формулы:

,

.

Давая качественную оценку коэффициентам детерминированности, опираясь на шкалу Чеддока, можно утверждать, что при линейной и квадратичной аппроксимациях наблюдается «весьма высокая» теснота связи между независимой переменной и предикатом (0,9-0,99), а это еще раз свидетельствует о правильности выбора функций для аппроксимации. При сравнении этих коэффициентов можно сказать, что уравнение линейной зависимости () удовлетворительно отображает экспериментальные данные. Но все же коэффициент детерминированности уравнения квадратичной зависимости ближе к единице () и достаточно хорошо отображает экспериментальные данные. На этом основании можно сделать вывод, что квадратичная зависимость наилучшим образом отображает взаимосвязь между M и h.

Библиографический список

1. «Конспект лекций по информатике за I курс», Кондрашев А. П.

2. ИНФОРМАТИКА. АППРОКСИМАЦИЯ МЕТОДОМ НАИМЕНЬШИХ КВАДРАТОВ: Методические указания по выполнению курсовой работы / Санкт-Петербургский государственный горный институт (технический университет). Сост.: В.В.Беляев, Г.Н.Журов. СПБ, 2005. 52 с.

3. ИНФОРМАТИКА: Методические указания к курсовой работе / Санкт-Петербургский горный ин-т. Сост. А.П.Кондрашев. СПБ, 2002. 30с.

4. ЛАБОРАТОРНЫЕ РАБОТЫ ПО КУРСУ «ВЫЧИСЛИТЕЛЬНАЯ МАТЕМАТИКА И ПРИМЕНЕНИЕ ЭВМ» / Лениградский горный институт им. Г.В.Плеханова. Сост.: В.В. Беляев, Е.В.Быкова и др. 1987.

Приложение 1

Приложение 2

PROGRAM lineynaya;

{подключение модуля, необходимого для процедур очистки экрана и задержки}

USES CRT;

{Задание массива}

TYPE MAT=ARRAY [1..10,1..11] OF REAL;

VEK=ARRAY [1..25] OF REAL;

{Описание переменных}

VAR i,j,n:INTEGER; A:MAT; X,B,X1,Y1:VEK; fr,fm:text;

a1,b1,c1,d1:real;

{Процедура Гаусса}

PROCEDURE GAU(VAR A:MAT; VAR B,X:VEK; m:INTEGER);

VAR k,i,j,t,L:INTEGER; D:REAL; fw :TEXT;

BEGIN

{Задание всех переменных}

L:=m+1; FOR i:=1 TO m DO A[i,L]:=B[i];

{имя файла данных на диске}

ASSIGN(fw,'gaus.txt'); REWRITE(fw); {запись данных в файл}

WRITELN(fw,' CUCTEMA YPABHEHIY: ');

{начальный вывод данных}

FOR i:=1 TO m DO

BEGIN

FOR j:=1 TO m DO WRITE(fw,A[i,j]:14:6,' X[',j,'] ' );

WRITELN(fw,' = ', B[i]:14:6);

END;

{прямой ход решения СЛАУ по методу Гаусса}

{формирование треугольной матрицы коэффициентов}

FOR i:=1 TO m DO

BEGIN

D:=A[i,i]; t:=i; {ищем max в столбце}

FOR j:=i TO m DO

IF abs(A[j,i]) > abs(D) THEN

BEGIN D:=A[j,i]; t:=j;END;

{обмен строк}

IF i<>t THEN

BEGIN

FOR j:=i TO L DO

BEGIN D:=A[i,j]; A[i,j]:=A[t,j]; A[t,j]:=D;END;

END;

{формирование строки}

FOR j:=L DOWNTO i DO A[i,j]:=A[i,j]/A[i,i];

{зануление столбцов и пересчет А}

FOR k:=i+1 TO m DO

FOR j:=L DOWNTO i DO A[k,j]:=A[k,j]-A[i,j]*A[k,i];

END;

{обратный ход}

X[m]:=A[m,L]; FOR i:=m-1 DOWNTO 1 DO

BEGIN

D:=0; FOR j:=m DOWNTO i+1 DO D:=D+A[i,j]*X[j];

X[i]:=A[i,L]-D;

END;

WRITELN(fw,' VEKTOR X: ');

FOR i:=1 TO m DO WRITE(fw, X[i]:10:6);

WRITELN(fw); CLOSE(fw)

END;

{вычисление сумм}

BEGIN clrscr;

{имя файла данных на диске}

assign(fm,'kursovik.txt'); reset(fm); {чтение данных c файла}

FOR i:=1 TO 25 DO read(fm,X1[i]);

FOR i:=1 TO 25 DO read(fm,Y1[i]);

FOR i:=1 TO 25 DO

{формулы вычисления для сумм}

begin

a1:=a1+X1[i]; {для x(i)}

b1:=b1+Y1[i]; {для y(i)}

c1:=c1+sqr(X1[i]); {для x(i)2}

d1:=d1+X1[i]*Y1[i]; {для x(i)y(i)}

end;

{имя файла данных на диске}

assign(fr,'dan.txt');REWRITE(fr); {запись данных в файл}

{Формирование матрицы А}

write(fr,25,' '); writeln(fr,a1:4:4,' ');

write(fr,a1:4:4,' '); writeln(fr,c1:4:4,' ');

write(fr,b1:4:4,' '); writeln(fr,d1:4:4,' ');

close(fr);

WRITELN(' РЕШЕНИЕ СЛАУ МЕТОДОМ ГАУССА. КОЛ-ВО УРАВН. НЕ БОЛЕЕ 10');

WRITELN; WRITE(' ВВОДИ ЧИСЛО УРАВНЕНИЙ: '); READLN(n);

{имя файла данных на диске}

assign(fr,'dan.txt'); reset(fr); {чтение данных с файла}

FOR i:=1 TO n DO

FOR j:=1 TO n DO READ(fr,A[i,j]);

FOR i:=1 TO n DO READ(fr,B[i]);

for i:=1 to n do begin

for j:=1 to n do write(a[i,j]:14:6);

writeln(B[i]:14:1); end;

GAU(A,B,X,n);

{вывод результатов}

WRITELN('VEKTOR X:');

FOR i:=1 TO n DO WRITE(X[i]:12:6,' '); WRITELN; readln;

END.

Результат работы программы

CUCTEMA YPABHEHIY:

25.000000 X[1] 40.400000 X[2] = 34039.000000

40.400000 X[1] 86.316800 X[2] = 64484.880000

VEKTOR X:

633.272700 450.674072

Приложение 3

PROGRAM kvadratichnaya;

{подключение модуля, необходимого для процедур очистки экрана и задержки}

USES CRT;

{Задание массива}

TYPE MAT=ARRAY [1..10,1..11] OF REAL;

VEK=ARRAY [1..25] OF REAL;

{Описание переменных}

VAR i,j,n:INTEGER; A:MAT; X,B,X1,Y1:VEK; fr,fm:text;

a1,b1,c1,d1,e1,f1,g1:real;

{Процедура Гаусса}

PROCEDURE GAU(VAR A:MAT; VAR B,X:VEK; m:INTEGER);

VAR k,i,j,t,L:INTEGER; D:REAL; fw :TEXT;

BEGIN

{Задание всех переменных}

L:=m+1; FOR i:=1 TO m DO A[i,L]:=B[i];

{имя файла данных на диске}

ASSIGN(fw,'gaus.txt'); REWRITE(fw); {запись данных в файл}

WRITELN(fw,' CUCTEMA YPABHEHIY: ');

{начальный вывод данных}

FOR i:=1 TO m DO

BEGIN

FOR j:=1 TO m DO WRITE(fw,A[i,j]:14:6,' X[',j,'] ' );

WRITELN(fw,' = ', B[i]:14:6);

END;

{прямой ход решения СЛАУ по методу Гаусса}

{формирование треугольной матрицы коэффициентов}

FOR i:=1 TO m DO

BEGIN

D:=A[i,i]; t:=i; {ищем max в столбце}

FOR j:=i TO m DO

IF abs(A[j,i]) > abs(D) THEN

BEGIN D:=A[j,i]; t:=j;END;

{обмен строк}

IF i<>t THEN

BEGIN

FOR j:=i TO L DO

BEGIN D:=A[i,j]; A[i,j]:=A[t,j]; A[t,j]:=D;END;

END;

{формирование строки}

FOR j:=L DOWNTO i DO A[i,j]:=A[i,j]/A[i,i];

{зануление столбцов и пересчет А}

FOR k:=i+1 TO m DO

FOR j:=L DOWNTO i DO A[k,j]:=A[k,j]-A[i,j]*A[k,i];

END;

{обратный ход}

X[m]:=A[m,L]; FOR i:=m-1 DOWNTO 1 DO

BEGIN

D:=0; FOR j:=m DOWNTO i+1 DO D:=D+A[i,j]*X[j];

X[i]:=A[i,L]-D;

END;

WRITELN(fw,' VEKTOR X: ');

FOR i:=1 TO m DO WRITE(fw, X[i]:10:6);

WRITELN(fw); CLOSE(fw)

END;

{вычисление сумм}

BEGIN clrscr;

{имя файла данных на диске}

assign(fm,'kursovik.txt'); reset(fm); {чтение данных c файла}

FOR i:=1 TO 25 DO read(fm,X1[i]);

FOR i:=1 TO 25 DO read(fm,Y1[i]);

FOR i:=1 TO 25 DO

{формулы вычисления для сумм}

begin

a1:=a1+X1[i]; {для x(i)}

b1:=b1+Y1[i]; {для y(i)}

c1:=c1+sqr(X1[i]); {для x(i)2}

d1:=d1+X1[i]*Y1[i]; {для x(i)y(i)}

e1:=e1+X1[i]*X1[i]*X1[i]; {для x(i)3}

f1:=f1+X1[i]*X1[i]*X1[i]*X1[i]; {для x(i)4}

g1:=g1+X1[i]*X1[i]*Y1[i]; {для x(i)2y(i)}

end;

{имя файла данных на диске}

assign(fr,'dan.txt');REWRITE(fr); {запись данных в файл}

{Формирование матрицы А}

write(fr,25,' ',a1:4:4,' '); writeln(fr,c1:4:4,' ');

write(fr,a1:4:4,' ',c1:4:4,' '); writeln(fr,e1:4:4,' ');

write(fr,c1:4:4,' ',e1:4:4,' '); writeln(fr,f1:4:4,' ');

write(fr,b1:4:4,' ',d1:4:4,' '); writeln(fr,g1:4:4,' ');

close(fr);

WRITELN(' РЕШЕНИЕ СЛАУ МЕТОДОМ ГАУССА. КОЛ-ВО УРАВН. НЕ БОЛЕЕ 10');

WRITELN; WRITE(' ВВОДИ ЧИСЛО УРАВНЕНИЙ: '); READLN(n);

{имя файла данных на диске}

assign(fr,'dan.txt'); reset(fr); {чтение данных с файла}

FOR i:=1 TO n DO

FOR j:=1 TO n DO READ(fr,A[i,j]);

FOR i:=1 TO n DO READ(fr,B[i]);

for i:=1 to n do begin

for j:=1 to n do write(a[i,j]:14:6);

writeln(B[i]:14:1); end;

GAU(A,B,X,n);

{вывод результатов}

WRITELN('VEKTOR X:');

FOR i:=1 TO n DO WRITE(X[i]:12:6,' '); WRITELN; readln;

END.

Результат работы программы

CUCTEMA YPABHEHIY:

25.000000 X[1] 40.400000 X[2] 86.316800 X[3] = 34039.000000

40.400000 X[1] 86.318600 X[2] 207.988022 X[3] = 64484.880000

86.318600 X[1] 207.988022 X[2] 535.163222 X[3] = 146684.350400

VEKTOR X:

412.112901 848.450296 -122.122397

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


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

  • Построение эмпирических формул методом наименьших квадратов. Линеаризация экспоненциальной зависимости. Элементы теории корреляции. Расчет коэффициентов аппроксимации, детерминированности в Microsoft Excel. Построение графиков функций, линии тренда.

    курсовая работа [590,9 K], добавлен 10.04.2014

  • Построение эмпирических формул методом наименьших квадратов. Линеаризация экспоненциальной зависимости. Элементы теории корреляции. Расчет аппроксимаций в табличном процессоре Excel. Описание программы на языке Turbo Pascal; анализ результатов ее работы.

    курсовая работа [390,2 K], добавлен 02.01.2015

  • Метод наименьших квадратов. Возможные варианты расположения экспериментальных точек. Аппроксимация экспериментальных данных в программах Microsoft Excel, MathCAD и MatLAB. Вычисление средних значений и их сумм. Коэффициенты корреляции и детерминации.

    курсовая работа [890,9 K], добавлен 30.10.2012

  • Определение зависимости между экспериментальными данными при помощи аппроксимации, особенности решения поставленной задачи различными способами, проведение расчетов с помощью табличного процессора Microsoft Excel и среды программирования Turbo Pascal 7.0.

    курсовая работа [765,0 K], добавлен 25.02.2012

  • Разработка алгоритма аппроксимации данных методом наименьших квадратов. Средства реализации, среда программирования Delphi. Физическая модель. Алгоритм решения. Графическое представление результатов. Коэффициенты полинома (обратный ход метода Гаусса).

    курсовая работа [473,6 K], добавлен 09.02.2015

  • Оценка погрешности и точности в математике. Составление программы и алгоритма для численного дифференцирования с заданной допустимой погрешностью на алгоритмическом языке Turbo Pascal 7.0. Составление алгоритма и программы аппроксимации функции.

    курсовая работа [810,6 K], добавлен 24.03.2012

  • Структура и основные элементы языка Turbo Pascal. Алгоритм составления простейших программ на Turbo Pascal. Применение условного оператора и сильноветвящихся алгоритмов. Циклы с предусловием и постусловием, сочетание циклических и условных операторов.

    реферат [64,0 K], добавлен 20.03.2016

  • Разработка алгоритмов методом пошаговой детализации. Типы данных и операции в Turbo-Pascal. Организация работы с подпрограммами. Составление алгоритмов и программ задач с использованием конечных сумм. Организация работы с динамическими переменными.

    учебное пособие [1,4 M], добавлен 26.03.2014

  • Развитие навыков работы с табличным процессором Microsoft Excel и программным продуктом MathCAD и применение их для решения задач с помощью электронно-вычислительных машин. Схема алгоритма. Назначение функции Линейн и метода наименьших квадратов.

    курсовая работа [340,4 K], добавлен 17.12.2014

  • Метод Гаусса и одно из его приложений в экономике (простейшая задача о рационе). Модель Леонтьева межотраслевого баланса. Алгебраический метод наименьших квадратов. Анализ данных эксперимента. Метод наименьших квадратов в Excel и аппроксимация данных.

    курсовая работа [598,7 K], добавлен 11.07.2015

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