Министерство общего и профессионального образованияРоссийской Федерации
Московский Государственный Строительный Университет
Кафедра информатики и прикладной математики
КУРСОВАЯ РАБОТА ПО ИНФОРМАТИКЕ
на темы:
1. Аппроксимация.
2. Разработка модуля исключения нуль-уравнений в комплексе “Решение задачи линейного программирования”.
Выполнил студент ЭОУС – I – 2: Моносов А. Л.
Преподаватель: доцент Марьямов А. Г.
Москва 1999.
Оглавление.
I. Математическая часть. Название…………………………………3.
1.1 Постановка задачи………………………………………………….3.
2.1 Изложение метода………………………………………………….4.
3.1 Блок-схема алгоритма. Описание исходных данных и результатов………………………………………………………………5.
4.1 Листинг программы, исходных данных и результатов……………6.
5.1 Список переменных основной программы………………………10.
6.1 Заголовки процедур и функций. Список их переменных……….10.
7.1 Ручной расчет……………………………………………………..11.
8.1 Обсуждение результатов с целью доказательства правильности алгоритма и программы………………………………………………..12.
9.1 Выводы…………………………………………………………….13.
II. Экономическая часть. Название………………………………..14.
1.2 Постановка задачи линейного программирования и задание на разработку модуля……………………………………………………...14.
2.2 Описание исходных данных и результатов решения задач линейного программирования………………………………………...18.
3.2 Описание модуля типов…………………………………………..19.
4.2 Укрупненная блок-схема задачи линейного программирования..20.
5.2 Параметры и заголовки процедур задачи линейного программирования……………………………………………………..21.
6.2 Блок-схема и параметры реализованной процедуры……………21.
7.2 Листинг модуля, исходных данных и результатов машинного расчета………………………………………………………………….23.
8.2 Ручной расчет задачи линейного программирования…………...24.
9.2 Выводы…………………………………………………………….26.
Список использованной литературы.……………………………..27.
I. Математическая часть. Аппроксимация.
1.1 Постановка задачи.
Пусть величина y является функцией аргумента x. Это означает, что любому значению x из области определения поставлено в соответствии значение y. Вместе с тем на практике часто неизвестна явная связь между y и x, т.е. невозможно записать эту связь в виде y=f(x). В некоторых случаях даже при известной зависимости y=f(x) она настолько громоздка (например, содержит трудно вычисляемые выражения, сложные интегралы и т.п.), что ее использование в практических расчетах затруднительно.
Наиболее распространенным и практически важным случаем, когда вид связи между параметрами x и y неизвестен, является задание этой связи в виде некоторой таблицы {xi yi}. Это означает, что дискретному множеству значений аргумента {xi} поставлено в соответствие множество значений функции {yi} (i=0,1…n). Эти значения - либо результаты расчетов, либо экспериментальные данные. На практике нам могут понадобиться значение величины y и в других точках, отличных от узлов xi. Однако получить эти значения можно лишь путем очень сложных расчетов или провидением дорогостоящих экспериментов.
Таким образом, с точки зрения экономии времени и средств мы приходим к необходимости использования имеющихся табличных данных для приближенного вычисления искомого параметра y при любом значении (из некоторой области) определяющего параметра x, поскольку точная связь y=f(x) неизвестна.
Этой цели и служит задача о приближение (аппроксимации) функций: данную функцию f(x) требуется приближенно заменить (аппроксимировать) некоторой функцией g(x) так, чтобы отклонение (в некотором смысле) g(x) от f(x) в заданной области было минимальным. Функция g(x) при этом называется аппроксимирующей.
Для практики весьма важен случай аппроксимации функции многочленом:
g(x)=a0+a1x+a2x2+…+amxm (2.1)
При этом коэффициенты ajбудут подбираться так, чтобы достичь наименьшего отклонения многочлена от данной функции.
Если приближение строиться на заданном множестве точек {xi}, то аппроксимация называется точечной. К ней относятся интерполирование, среднеквадратичное приближение и др. При построении приближения на непрерывном множестве точек (например, на отрезке [a,b] аппроксимация называется непрерывной или интегральной).
2.1Изложение метода (Точечная аппроксимация).
Одним из основных типов точечной аппроксимации является интерполирование. Оно состоит в следующем: для данной функции y=f(x) строим многочлен (2.1), принимающий в заданных точках xiте же значения yi, что и функция f(x), т.е. g(xi)=yi, i=0,1,…n.
При этом предполагается, что среди значений xiнет одинаковых, т.е.xi¹xk приэтом i¹k. Точки xiназываются узлами интерполяции, а многочлен g(x) - интерполяционным многочленом.
n | å xi | … | å xim | a1 | åyi |
å xi2 | … | å xim+1 | a2 | åyixi | |
… | …… | … | …… | … | … |
å xim | å xim+1 | … | å xi2m | am+1 | åyixim |
Исходные данные, а именно:
m-число узлов аппроксимации.
n - степень аппроксимирующего многочлена.
X - вектор узлов аппроксимации.
Y - вектор значений аппроксимируемой функции.
Все эти значения мы заносим в файл jan.dat, который работает только на чтение и файловой переменной является f1.
Результаты:
Все результаты выводятся в файл jan.res,работающий на запись и имеющий файловую переменную f2.
Первоначально в этот файл выводятся исходные данные, которые берутся из файла jan.dat, но при этом уже с описанием, то есть не просто числа, а скоментарием, что они означают.
Затем выводятся результаты вычисления, проведенной машиной, при этом все результаты отформатированы:
Выводится матрица С системы линейных уравнений для аппроксимации вместе с вектором правых частей. Затем выводится решение этой системы уравнений, что является вектором коэффициентов аппроксимирующего многочлена по возрастанию степени. И в конце выводится вектор погрешности аппроксимации Z.
4.1 Листинг программы, исходных данных и результатов.
program approx;
uses crt,gausstpu;
const nm=20;
type vect1=array[1..nm] of real;
var c:matr;
a,b:vect;
x,y,z:vect1;
n,i,j,m:integer;
f1,f2:text;