РефератыМатематикаВеВероятностные процессы и математическая статистика в автоматизированных системах

Вероятностные процессы и математическая статистика в автоматизированных системах

Министерство образования и науки Украины


Кафедра КИТ


“ВЕРОЯТНОСТНЫЕ ПРОЦЕССЫ И МАТЕМАТИЧЕСКАЯ СТАТИСТИКА В АВТОМАТИЗИРОВАННЫХ СИСТЕМАХ”


2008


РЕФЕРАТ


Пояснительная записка к расчетно-графической работе: 29 стр., 9 рис., 1 прил., 5 источников.


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


Метод исследования – применение математико-статистических методов в автоматизированных системах, реализация программ статистической обработки эксперимента на ЭВМ.


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


ДЕФОРМИРУЕМЫЙ АЛЮМИНИЕВЫЙ СПЛАВ, ЛИТИЙ, ТЕМПЕРАТУРА СТАРЕНИЯ, ВРЕМЯ СТАРЕНИЯ, МНОГОФАКТОРНЫЙ ЭКСПЕРИМЕНТ.


СОДЕРЖАНИЕ


Введение


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


2 Этапы планирования и статической обработки результатов эксперимента для построения модели 2-го порядка


2.1 Построение модели плана II порядка


2.2 Кодирование факторов


2.3 Составление план – матрицы


2.4 Проверка воспроизводимости опытов


2.5 Расчет коэффициентов регрессии


2.6 Определение значимости коэффициентов


2.7 Проверка адекватности модели


3 Выбор и описание метода условной оптимизации


3.1 Выбор метода условной оптимизации


3.2 Описание метода условной оптимизации (Фиако-МакКормика)


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


4.1 Общие сведения


4.2 Функциональное назначение


4.3 Описание логической структуры программы


4.4 Используемые технические средства


4.5 Вызов и загрузка


4.6 Входные данные


4.7 Выходные данные


5 Результаты обработки данных эксперимента


6 Графики зависимости отклика


7 Кривые равного выхода


Заключение


Список использованных источников


Приложение



Введение


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


Встречающиеся на практике реальные задачи весьма разнообразны. Достаточно грубо их можно разделить на три основных задачи:


1 Выявление количественных зависимостей между параметрами процесса – задачи описания
;


2 Определение оптимальных условий протекания процесса – экстремальные задачи
;


3 Выбор оптимального состава многокомпонентных смесей.


Часто, приступая к изучению какого-либо процесса экспериментатор не имеет исчерпывающих сведений о механизме процесса. Можно только указать параметры определяющие условия протекания процесса, и, возможно требования к его результатам. Поставленная проблема является задачей кибернетики. Действительно, если считать кибернетику «наукой, изучающей системы любой природы, способные воспринимать, хранить и перерабатывать информацию для целей оптимального управления» [1], то такую систему можно представить в виде черного ящика.


Черный ящик

объект исследования, имеющий (k+p) входов и m выходов.





X – управляемые параметры, Z – неуправляемые параметры.


Зависимость между выходными параметрами (откликом) и входными параметрами (факторами) называется функцией отклика
.


Математическая запись функции отклика представлена в виде формулы (1):


(1)


Этому уравнению в многомерном пространстве соответствует гипперповерхность, которая называется поверхностью отклика
, а само пространство – факторным пространством
.


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


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


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


1 Минимизировать общее число опытов;


2 Выбирать четкие логически обоснованные процедуры, последовательно выполняемые экспериментатором при проведении исследования;


3 Использовать математический аппарат, формализующий многие действия экспериментатора;


4 Одновременно варьировать всеми переменными и оптимально использовать факторное пространство;


5 Организовать эксперимент таким образом, чтобы выполнялись многие исходные предпосылки регрессионного анализа;


6 Получать математические модели, имеющие лучшие в некотором смысле свойства по сравнению с моделями, построенными из пассивного эксперимента;


7 Рандомизировать условия опытов, то есть многочисленные мешающие факторы превратить в случайные величины;


8 Оценивать элемент неопределенности, связанный с экспериментом, что дает возможность сопоставлять результаты, полученные разными исследователями [1].


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


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

Изучали механические свойства одного из алюминиевых деформируемых сплавов в зависимости от содержания в нем лития Х1 (основной уровень 1%, интервал варьирования 0,5%), температуры старения Х2 (основной уровень 175 гр.С, интервал варьирования 25 гр.С) и времени старения Х3 (основной уровень 4 ч., интервал варьирования 2 ч.). В качестве отклика выбран предел прочности сплавов, определяющийся при испытании на растяжение (Y, кгс/кв.мм).


Задание на расчетно-графическую работу:


1) Найти уравнение регрессии 2-го порядка и выполнить статистический анализ модели.


2) Исследовать модель 2-го порядка на выпуклость и вогнутость методами дифференциального исчисления.


3) Определить тип поверхности отклика.


4) Построить графики зависимости отклика от каждого из факторов Y=f(Xi) при фиксированных значениях остальных факторов (каждый рисунок должен содержать 3-4 кривые).


5) Применяя один из методов оптимизации, найти в исследованной области оптимальные сочетания факторов, обеспечивающие максимальное и минимальное значения отклика.


6) Построить двумерные сечения поверхности отклика, соответствующие пересечению поверхности с плоскостями Xi=Ximax. Для этого в уравнение регрессии необходимо подставить значение этого фактора, и по полученным двухфакторным уравнениям рассчитать, а потом построить изолинии поверхности отклика (кривые равного выхода).


7) Определить типы кривых равного выхода.


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


2. Этапы планирования и статической обработки результатов эксперимента для построения модели 2-го порядка
2.1 Построение модели плана II порядка

Для построения плана II порядка можно использовать следующую модель:


(2)


Для этого необходимо провести эксперимент так, чтобы каждый фактор варьировался на трех уровнях. Простейшим решением этой задачи является план типа 3k
. Реализация этого плана для k>3 требует большого числа опытов.


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


Для удобства работы с приведенной моделью II порядка, с помощью обозначений (3) преобразуем ее к виду (2’):


(3)


(2’)


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


Согласно МНК, для нахождения коэффициентов bi
, необходимо минимизировать функцию:


(4)


где N – количество опытов;


xui
–значение i-й переменной в u-м опыте;


yu
– значение экспериментальных y в u-м опыте;


Из условия минимизации функции ss, можно получить систему нормальных уравнений МНК:


(5)


Представив все результаты в матричной форме, получим:


, , , (6)


где X – матрица условий эксперимента; Y – матрица результатов опытов; B – матрица коэффициентов.


Умножив транспонированную матрицу X на матрицу X, получим матрицу системы нормальных уравнений, которая называется информационной матрицей Фишера (матрицей моментов):


(7)


Умножив транспонированную матрицу X на матрицу Y, получим:


(8)


Используя данные обозначения, систему нормальных уравнений можно записать в матричной форме:


(9)


Обозначая обратную матрицу моментов как:


(10)


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


(11)


Все статистические свойства коэффициентов линии регрессии определяется матрицей дисперсий ковариаций.


(12)


где cov(bi
, bj
) – ковариации коэффициентов bi
, и bj
;


S2
(bi
) – дисперсия коэффициента bi
;


S2
(y) – дисперсия опыта.


Дисперсию опыта можно определить по формулам:


(13)


(14)


где m – количество параллельных опытов.


Если параллельные опыты не проводятся, то для оценки дисперсии опыта ставятся эксперименты в центре плана. Тогда дисперсия определяется по формуле:


(15)


где - количество опытов в центре плана.


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



Величина зависит от фактора и от плеча d:


;


Для k=3 ядро =15, =11/15=0.7303, d=1.2154


2.2 Кодирование факторов

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


Для перевода заполняется таблица кодирования факторов на двух уровнях. В качестве 0-го уровня обычно выбирается центр интервала, в котором предполагается вести эксперимент.


Связь между кодовым и натуральным значениями фактора:


(16)


где Xi
– натуральное значение фактора;


Xi0
–значение этого фактора на нулевом уровне;


dI
– интервал варьирования факторов.


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


Таблица 1 - Таблица кодирования факторов



2.3 Составление план – матрицы

В план – матрице должны быть указаны все возможные комбинации уровней факторов.


Таблица 2 – Расширенная план – матрица ортогонального плана



2.4 Проверка воспроизводимости опытов

При одинаковом числе параллельных этапов воспроизводимость опытов определяется по критерию Кохрена.


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



Проверка воспроизводимости опытов показана на рисунке 2.



Рисунок 2- Воспроизводимость опытов


2.5 Расчет коэффициентов регрессии

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



Значения при ядре плана :



Матрица дисперсий (ковариаций) коэффициентов регрессии рассчитывается по формуле (10).


2.6 Определение значимости коэффициентов

Значимость коэффициентов регрессии проверяют по критерию Стьюдента:


(17)


Дисперсия коэффициентов определяется по формуле



2.7 Проверка адекватности модели

Адекватность модели проверяется с помощью критерия Фишера:


(17)


, (18)


где Sад
2
– дисперсия адекватности, рассчитываемая по формуле (18);


Sy
2
– дисперсия опыта;


a=0.05;


fад
=N-l, число свободы дисперсии адекватности;


fy
=N(m-1), число свободы дисперсии опыта;


l – количество значимых коэффициентов.


Если неравенство (17) выполняется, значит модель адекватна.


3. Выбор и описание метода условной оптимизации
3.1 Выбор метода условной оптимизации

При решении поставленной задачи оптимизации был использован метод Фиако-МакКормика, который относится к непрямым методам решения задач нелинейного программирования. Непрямые методы преобразуют задачи с ограничениями в последовательность задач безусловной оптимизации путем введения в целевую функцию штрафных функций.


3.2 Описание метода условной оптимизации (Фиако-МакКормика)

Алгоритм метода Фиако-Маккормика


Этап 1. Задание ,, .


Этап 2. Нахождение методом прямого поиска минимума вспомогательной функции , т.е. .


Этап 3. Проверка условий окончания поиска . Если условие выполняется по переход на этап 6, иначе переход на этап 4.


Этап 4. Уменьшение значения , , .


Этап 5. Увеличение . Переход на этап 2.


Этап 6. Оптимальное решение , .


4. Описание программы
4.1 Общие сведения

Обозначение программы - vpRgr.exe.


Наименование программы - “Расчетно – графическая работа № 1 по дисциплине “ВПиМСвАС”.


Программное обеспечение, необходимое для функционирования программы – Windows 95/98/NT/2000/ME.


Для написания программы была использована интегрированная среда разработки приложений (IDE-Integrated Development Environment) – Delphi 6.0.


4.2 Функциональное назначение

1 Назначение программы: определение оптимального состава алюминиевых деформируемых сплавов из условия получения максимального предела прочности при испытаниях на растяжения


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


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


4.3 Описание логической структуры программы

При программировании с использованием средств визуального программирования (Delphi, Visual Basic и др.), приложение становится событийно – управляемым, поэтому невозможно построить алгоритм программы, как это имело место при традиционном программировании на Pascal, C++. В связи с этим наиболее полное представление о программе дает ее укрупненная структурная схема с описанием функций составных частей и связи между ними.


Для того, чтобы разделить фазы “конструирования пользовательского интерфейса” и “непосредственного программирования математической модели”, была использована блочно – модульная структура. При этом каждый структурный элемент выносился в отдельный модуль, поддерживающий интерфейс с пользователем и между собой.



Рисунок 1.-логическая связь процедур модуля


Описание структурных элементов программы


type mas=array[1..3] of real;


var x:array[0..9,1..15] of real; //переменные


x2:array[1..3,1..15] of real;//квадраты переменных


x0,ix, //нулевые уровни и интервалы варьирования


xc, //значения координат центра


la, //канонические козффициенты


m,l,n,ml,nl, //направляющие косинусы углов поворота осей и их частные


xp1,xp2,xp3,xh,


xlocmax,xlocmin:mas; //координаты локальных максимума и минимума


y,ys:array[1..2,1..20] of real; //значения функции отклика


x12,x23,x13, //попарные произведения переменных


yc,ycs, //усредненная функция отклика


s2u:array[1..15] of real; //дисперсии эксперементив


b, //коэффициенты модели


s2b, //дисперсии коэффициентов


db:array[0..9] of real; //пределы значимости коэффициентов


kk: d,xc2,


S2UMax, //максимальное значение дисперсии эксперемента


s2y, //дисперсия опыта


ycen, //функция отклика в центре


ylocmax,ylocmin:real;


4.4 Используемые технические средства

Для оптимальной работы программы необходима следующая конфигурация компьютера:


1) процессор Intel Pentium III|| 500;


2) ОЗУ 64 Мб;


3) SVGA монитор (разрешение 800х600);


4) свободное место на жестком диске не менее 2 Mb;


4.5 Вызов и загрузка

Для инсталляции программы необходимо выполнить следующие шаги:


1) убедиться в том, что компьютер, на который устанавливается система, отвечает всем требованиям, изложенным в разделе «Минимальные системные требования»;


2) убедиться в исправности накопителей на гибких магнитных носителях;


3) перекопировать программу на жесткий диск компьютера;


4) запустить файл Rgr.exe.


4.6 Входные данные

Входными данными к программе являются:


1) таблица кодирования (таблица 1);


2) результаты экспериментов.


Входные данные заданы в программе.


4.7 Выходные данные

Выходными данными являются:


1) дисперсии опытов;


2) коэффициенты линии регресии;


3) расчетные значения выходов;


4) заключения о воспроизводимости опытов, значимости коэффициентов модели, адекватности модели;


5) графики отклика при двух постоянных значениях факторов;


6) кривые равного выхода при одном постоянном факторе;


7) наилучшие и наихудшие сочетания факторов.


5. Результаты обработки данных эксперимента

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




Расширенная план-матрица эксперимента



Нахождение коэффициентов, проверка их значимости и анализ полученной модели показано на рисунке 3.



Рисунок 3 – Результат работа программы


6. графики зависимости отклика

Графики зависимости отклика от каждого из параметров представлены на рисунка 4-6.



Рисунок 4 – зависимость отклика от изменения параметра x1.
Зависимость отклика от X1


y= 30,60 + 0,00*x1 + 2,97*x1^2 x2=0 x3=0


y= 25,60 + 3,87*x1 + 2,97*x1^2 x2=1 x3=0


y= 22,73 + 1,02*x1 + 2,97*x1^2 x2=1 x3=1



Рисунок 5 - зависимость отклика от изменения параметра x2.
Зависимость отклика от X2


y= 30,60 + -1,94*x2 + -3,05*x2^2 x1=0 x3=0


y= 33,57 + 1,92*x2 + -3,05*x2^2 x1=1 x3=0


y= 34,35 + -4,57*x2 + -3,05*x2^2 x1=1 x3=1



Рисунок 6 - зависимость отклика от изменения параметра x3.
Зависимость отклика от X3


y= 30,60 + 3,63*x3 + 0,00*x3^2 x1=0 x2=0


y= 33,57 + 0,78*x3 + 0,00*x3^2 x1=1 x2=0


y= 32,44 + -5,71*x3 + 0,00*x3^2 x1=1 x2=1


7. кривые равного выхода

Графики зависимости отклика от каждого из параметров представлены на рисунках 7-9



Рисунок 7 – Линии уровня отклика при фиксированном x3



Рисунок 8 – Линии уровня отклика при фиксированном x2



Рисунок 9 – Линии уровня отклика при фиксированном x1


Заключение

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


Оптимальный параметры прочности:


Содержание Li(%) = 0.6


Температура старения(град.С)=25


Время старения(час.)=2


Содержание Li(%) = 0.6


Температура старения(град.С)=25


Время старения(час.)=2


Содержание Li(%) = 1.5


Температура старения(град.С)=200


Время старения(час.)=6


список использованных источников

1) Конспект лекций по дисциплине «ВП и МСАС».


2) Конспект лекций по дисциплине «ТА и МОПЗ».


3) Конспект лекций по дисциплине «Методы синтеза и оптимизации».


4) Методические указания к лабораторным и расчетно-графической работе по дисциплине "Вероятностные процессы и математическая статистика в автоматизированных системах" / Сост.:Г.Б.Билык, О.В.Веремей, В.И.Кравченко. - ДГМА, 2006. - 24 с. (файл VPLAB).


5) Применение математических методов и ЭВМ. Планирование и обработка результатов эксперимента / Под ред. А.Н. Останина. - Мн.: Выш. шк., 2005. - 218 с.


приложение

Листинг модуля Metod.pas – подпрограммы общего назначения


type mas=array[1..3] of real;


var x:array[0..9,1..15] of real;


x2:array[1..3,1..15] of real;


x0,ix,xc,la,m,l,n,ml,nl,


xp1,xp2,xp3,xh,xlocmax,xlocmin:mas;


y,ys:array[1..2,1..20] of real;


x12,x23,x13,yc,ycs,s2u:array[1..15] of real;


b,s2b,db:array[0..9] of real;


kk:integer;


d,xc2,S2UMax,s2y,ycen,ylocmax,ylocmin:real;


{$R *.dfm}


function sx(l:integer):real;


var s:real; i:integer;


begin s:=0;


for i:=1 to 15 do


s:=s+sqr(x[l,i]);


sx:=s;


end;


function sxy(l:integer):real;


var s:real; i:integer;


begin s:=0;


for i:=1 to 15 do


s:=s+x[l,i]*yc[i];


sxy:=s;


end;


function f(l:integer):real;


var xx1,xx2,xx3:real;


begin


xx1:=x[1,l]; xx2:=x[2,l]; xx3:=x[3,l];


f:=b[0]+b[1]*xx1+b[2]*xx2+b[3]*xx3


+b[4]*xx1*xx2+b[5]*xx1*xx3+b[6]*xx2*xx3+


b[7]*xx1*xx1+b[8]*xx2*xx2+b[9]*xx2*xx2;


end;


function fy(xx1,xx2,xx3:real):real;


begin


fy:=b[0]+b[1]*xx1+b[2]*xx2+b[3]*xx3


+b[4]*xx1*xx2+b[5]*xx1*xx3+b[6]*xx2*xx3+


b[7]*xx1*xx1+b[8]*xx2*xx2+b[9]*xx2*xx2;


end;


function dlambda(lam:real):real;


begin dlambda:=(b[7]-lam)*((b[8]-lam)*(b[9]-lam)-0.25*b[6]*b[6])-


0.5*b[4]*(0.5*b[4]*(b[9]-lam)-0.25*b[5]*b[6])+


0.5*b[5]*(0.25*b[4]*b[6]-0.5*b[5]*(b[8]-lam))


end;


function findl(xa,xb:re

al):real;


var c:real;


begin


repeat


c:=(xa+xb)/2;


if dlambda(xa)*dlambda(c)<0 then xb:=c


else xa:=c;


until abs(dlambda(xa)-dlambda(xb))<=0.001;


findl:=(xa+xb)/2;


end;


procedure maximminim;


var yt:array[1..2,1..2,1..2] of real; i,j,w:integer;


minim,maxim:real;


begin minim:=fy(1,1,1);


maxim:=fy(1,1,1);


for i:=-10 to 10 do


for j:=-10 to 10 do


for w:=-10 to 10 do


begin if fy(i/10,j/10,w/10)>=maxim then begin


maxim:=fy(i/10,j/10,w/10); xlocmax[1]:=i/10;


xlocmax[2]:=j/10; xlocmax[3]:=w/10; end;


if fy(i/10,j/10,w/10)<=minim then begin


minim:=fy(i/10,j/10,w/10);xlocmin[1]:=i/10;


xlocmin[2]:=j/10; xlocmin[3]:=w/10; end;


end;


ylocmin:=minim;


ylocmax:=maxim;


end;


procedure minmax;


type arr=array [1..3,1..3] of real;


var d,d1,d2,d3:arr; i:integer; bd:mas;


function delta(a:arr):real;


begin delta:=a[1,1]*(a[2,2]*a[3,3]-a[2,3]*a[3,2])-


a[1,2]*(a[2,1]*a[3,3]-a[2,3]*a[3,1])+


a[1,3]*(a[2,1]*a[3,2]-a[2,2]*a[3,1]); end;


begin d[1,1]:=2*b[7]; d[1,2]:=b[4]; d[1,3]:=b[5];


d[2,1]:=b[4]; d[2,2]:=2*b[8]; d[2,3]:=b[6];


d[3,1]:=b[5]; d[3,2]:=b[6]; d[3,3]:=2*b[9];


bd[1]:=-b[1]; bd[2]:=-b[2]; bd[3]:=-b[3];


for i:=1 to 3 do


begin d1[i,2]:=d[i,2]; d1[i,3]:=d[i,3];


d2[i,1]:=d[i,1]; d2[i,3]:=d[i,3];


d3[i,2]:=d[i,2]; d3[i,1]:=d[i,1];


d1[i,1]:=bd[i];d2[i,2]:=bd[i];d3[i,3]:=bd[i]; end;


xc[1]:=delta(d1)/delta(d);


xc[2]:=delta(d2)/delta(d);


xc[3]:=delta(d3)/delta(d);


ycen:=fy(xc[1],xc[2],xc[3]);


la[1]:=findl(-6,-2);


la[2]:=findl(-2,2);


la[3]:=findl(2,6);


for i:=1 to 3 do begin


ml[i]:=(b[6]*(b[7]-la[i])-0.5*b[4]*b[5])/(b[5]*(b[8]-la[i])-0.5*b[4]*b[6]);


nl[i]:=(-2*(b[7]-la[i])*(b[8]-la[i])+0.5*b[4]*b[4])/(b[5]*(b[8]-la[i])-0.5*b[4]*b[6]);


l[i]:=1/sqrt(1+sqr(ml[i])+sqr(nl[i]));


m[i]:=ml[i]*l[i];


n[i]:=nl[i]*l[i];


maximminim; end; end;


procedure TForm1.FormCreate(Sender: TObject);


var i,j:integer;


begin


x0[1]:=1; x0[2]:=175; x0[3]:=4;


ix[1]:=0.5; ix[2]:=25; ix[3]:=2;


y[1,1]:=24.99; y[1,2]:=22.61;y[1,3]:=26.99; y[1,4]:=39.61;


y[1,5]:=49.8; y[1,6]:=37.8; y[1,7]:=26.61; y[1,8]:=28.99;


y[1,9]:=35.8; y[1,10]:=37.61;y[1,11]:=27.99;y[1,12]:=24.18;


y[1,13]:=26.8; y[1,14]:=34.99;y[1,15]:=32.8;


y[2,1]:=25.51;y[2,2]:=23.89; y[2,3]:=26.89; y[2,4]:=39.51;


y[2,5]:=53.7; y[2,6]:=37.51; y[2,7]:=26.7; y[2,8]:=28.7;


y[2,9]:=38.89;y[2,10]:=37.32;y[2,11]:=33.51;y[2,12]:=28.7;


y[2,13]:=30.7; y[2,14]:=38.7;y[2,15]:=31.51;


xc2:=sqrt(8/15); d:=sqrt((15*xc2-8)/2);


ys:=y;


sgcod.Cells[0,1]:='Íóëåâîé óðîâåíü';


sgcod.Cells[0,2]:='Èíòåðâàë âàðüèðîâàíèÿ';


sgcod.Cells[0,3]:='Íèæíèé óðîâåíü';


sgcod.Cells[0,4]:='Âåðõíèé óðîâåíü';


sgcod.Cells[0,5]:='Êîäîâîå îáîçíà÷åíèå';


sgcod.Cells[1,0]:='Ñîäåðæ. Li,% ';


sgcod.Cells[2,0]:='T ñòàð., ãð.Ñ ';


sgcod.Cells[3,0]:=' t ñòàð., ÷. ';


for i:=1 to 3 do


begin sgcod.Cells[i,1]:=' '+floattostr(x0[i]);


sgcod.Cells[i,2]:=' '+floattostr(ix[i]);


sgcod.Cells[i,3]:=' '+floattostr(x0[i]-ix[i]);


sgcod.Cells[i,4]:=' '+floattostr(x0[i]+ix[i]);


end;


sgcod.Cells[1,5]:=' x1';


sgcod.Cells[2,5]:=' x2';


sgcod.Cells[3,5]:=' x3';


sgplan.Cells[1,0]:=' x0'; sgplan.Cells[2,0]:=' x1';


sgplan.Cells[3,0]:=' x2'; sgplan.Cells[4,0]:=' x3';


sgplan.Cells[5,0]:='x1^2-'+floattostrf(xc2,fffixed,3,2);


sgplan.Cells[6,0]:='x2^2-'+floattostrf(xc2,fffixed,3,2);


sgplan.Cells[7,0]:='x3^2-'+floattostrf(xc2,fffixed,3,2);


sgplan.Cells[8,0]:='x1x2'; sgplan.Cells[9,0]:='x1x3';


sgplan.Cells[10,0]:='x2x3'; sgplan.Cells[11,0]:=' y1';


sgplan.Cells[12,0]:=' y2'; sgplan.Cells[13,0]:=' yc';


for i:=1 to 15 do begin


if i<=8 then begin


if i mod 2 = 0 then x[1,i]:=1 else x[1,i]:=-1;


if ((i+1) div 2) mod 2 = 0 then x[2,i]:=1 else x[2,i]:=-1;


if ((i+3) div 4) mod 2 = 0 then x[3,i]:=1 else x[3,i]:=-1;


end


else begin


for j:=1 to 3 do


if i=7+2*j then x[j,i]:=-d


else if i=8+2*j then x[j,i]:=d


else x[j,i]:=0;


end;


x12[i]:=x[1,i]*x[2,i];


x23[i]:=x[2,i]*x[3,i];


x13[i]:=x[1,i]*x[3,i];


x[4,i]:=x12[i]; x[5,i]:=x13[i];


x[6,i]:=x23[i];


x[0,i]:=1;


for j:=1 to 3 do


x2[j,i]:=sqr(x[j,i])-xc2;


x[7,i]:=x2[1,i];


x[8,i]:=x2[2,i];


x[9,i]:=x2[3,i];


end;


for i:=1 to 15 do


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


sgplan.Cells[1,i]:=' 1';


for j:=1 to 3 do begin


sgplan.Cells[j+1,i]:=' '+floattostr(x[j,i]);


sgplan.Cells[j+4,i]:=' '+floattostrf(x2[j,i],fffixed,5,3); end;


sgplan.Cells[8,i]:=' '+floattostr(x12[i]);


sgplan.Cells[9,i]:=' '+floattostr(x13[i]);


sgplan.Cells[10,i]:=' '+floattostr(x23[i]);


end;


xh[1]:=-1; xh[2]:=-1; xh[3]:=-1;


kk:=0;


end;


procedure TForm1.Button2Click(Sender: TObject);


var i:integer;


begin


kk:=kk+1;


for i:=1 to 15 do


sgplan.Cells[10+kk,i]:=floattostr(ys[kk,i]);


if kk>=2 then begin button2.Enabled:=false;


for i:=1 to 15 do begin


yc[i]:=(y[1,i]+y[2,i])/2;


ycs[i]:=(y[1,i]+y[2,i])/2;


sgplan.Cells[13,i]:=floattostr(ycs[i]);


end;


end;


end;


procedure TForm1.Button1Click(Sender: TObject);


var k1,k2:integer; yk:real;


begin


randomize;


k1:=random(14)+1;


k2:=random(14)+1;


sgplan.Rows[16]:=sgplan.Rows[k1];


sgplan.Rows[k1]:=sgplan.Rows[k2];


sgplan.Rows[k2]:=sgplan.Rows[16];


yk:=ys[1,k1];


ys[1,k1]:=ys[1,k2];


ys[1,k2]:=yk;


yk:=ys[2,k1];


ys[2,k1]:=ys[2,k2];


ys[2,k2]:=yk;


end;


procedure TForm1.PageControl1Change(Sender: TObject);


var u,i,j,li:integer; sums,g,s2ad,fp,xx:real;


begin


if button2.Enabled=false then begin


sgvos.Cells[0,0]:=' u';


sgvos.Cells[1,0]:=' S2u';


sums:=0;


for u:=1 to 15 do


begin s2u[u]:=sqr(yc[u]-y[1,u])+sqr(yc[u]-y[2,u]);


sgvos.Cells[1,u]:=floattostrf(s2u[u],fffixed,5,3);


sgvos.Cells[0,u]:=inttostr(u);


sums:=sums+s2u[u];


end;


s2umax:=s2u[1];


for i:=1 to 15 do


if s2u[i]>s2umax then s2umax:=s2u[i];


label5.Caption:=floattostrf(s2umax,fffixed,7,3);


g:=s2umax/sums;


label7.Caption:=floattostrf(g,fffixed,7,3);


label9.Caption:=floattostrf(0.47,fffixed,7,3);


if g<=0.47 then begin


label10.Caption:=' Îïûòû'+#13+'âîñïðîèçâîäèìû';


s2y:=0;


for i:=1 to 15 do


s2y:=s2y+s2u[i]/15;


if b[0]=0 then begin


for i:=0 to 9 do


b[i]:=sxy(i)/sx(i);


sgb.Cells[i,1]:=floattostrf(b[i],fffixed,5,3);


for j:=1 to 3 do


b[0]:=b[0]-b[6+j]*xc2;


sgb.Cells[0,1]:=floattostrf(b[0],fffixed,5,3);


sgb.Cells[0,0]:='b0'; sgb.Cells[1,0]:='b1';


sgb.Cells[2,0]:='b2'; sgb.Cells[3,0]:='b3';


sgb.Cells[4,0]:='b12'; sgb.Cells[5,0]:='b13';


sgb.Cells[6,0]:='b23'; sgb.Cells[7,0]:='b11';


sgb.Cells[8,0]:='b22'; sgb.Cells[9,0]:='b33';


for i:=0 to 9 do


begin s2b[i]:=s2y/(2*sx(i));


db[i]:=1.76*s2b[i];


sgsb.Cells[i+1,1]:=floattostrf(s2b[i],fffixed,7,3);


sgsb.Cells[i+1,2]:=floattostrf(db[i],fffixed,7,3);


end;


sgsb.Cells[1,0]:='b0'; sgsb.Cells[2,0]:='b1';


sgsb.Cells[3,0]:='b2'; sgsb.Cells[4,0]:='b3';


sgsb.Cells[5,0]:='b12'; sgsb.Cells[6,0]:='b13';


sgsb.Cells[7,0]:='b23'; sgsb.Cells[8,0]:='b11';


sgsb.Cells[9,0]:='b22'; sgsb.Cells[10,0]:='b33';


sgsb.Cells[0,1]:='S2bi'; sgsb.Cells[0,2]:='|bi|';


label16.Caption:=floattostrf(s2y,fffixed,7,3);


label18.Caption:=floattostrf(1.76,fffixed,7,3);


label21.Caption:='Íåçíà÷èìûå êîýôôèöèåíòû:';


li:=0;


for i:=0 to 9 do


if abs(b[i])<=db[i] then begin


li:=li+1;


label21.Caption:=label21.Caption+' b['+


inttostr(i)+']='+floattostrf(b[i],fffixed,7,4);


b[i]:=0;


end;


s2ad:=0;


for i:=1 to 15 do


s2ad:=s2ad+sqr(yc[i]-f(i))+2/(li*15);


fp:=s2ad/s2y;


label12.Caption:=floattostrf(s2y,fffixed,7,3);


label20.Caption:=floattostrf(s2ad,fffixed,7,3);


label25.Caption:=floattostrf(2.96,fffixed,7,3);


label26.Caption:=floattostrf(fp,fffixed,7,3);


if fp<=2.96 then


label27.Caption:=' Ìîäåëü àäåêâàòíà'


else


label27.Caption:=' Ìîäåëü íå àäåêâàòíà';


minmax;


memo2.lines.add('Êîîðäèíèòû öåíòðà ïîâåðõíîñòè');


memo2.lines.add(' xc1='+floattostrf(xc[1],fffixed,5,3)+


' xc2='+floattostrf(xc[2],fffixed,5,3)+


' xc3='+floattostrf(xc[3],fffixed,5,3)+


' yc='+floattostrf(ycen,fffixed,5,3) );


if ((la[1]<0) and (la[2]<0) and (la[3]<0)) or


((la[1]>0) and (la[2]>0) and (la[3]>0))


then memo2.lines.add(' Ïîâåðõíîñòü, èìåþùàÿ ýêñòðåìóì')


else memo2.lines.add(' Ïîâåðõíîñòü òèïà ìèíèìàêñà');


memo2.lines.add(' Ëîêàëüíûé ýêñòðåìóì');


memo2.lines.add(' xmax1='+floattostrf(xlocmax[1],fffixed,5,1)+


' xmax2='+floattostrf(xlocmax[2],fffixed,5,1)+


' xmax3='+floattostrf(xlocmax[3],fffixed,5,1)+


' Ymax='+floattostrf(ylocmax,fffixed,5,4));


memo2.lines.add(' xmin1='+floattostrf(xlocmin[1],fffixed,5,1)+


' xmin2='+floattostrf(xlocmin[2],fffixed,5,1)+


' xmin3='+floattostrf(xlocmin[3],fffixed,5,1)+


' Ymin='+floattostrf(ylocmin,fffixed,5,4));


end; end


else label10.Caption:=' Îïûòû íå'+#13+'âîñïðîèçâîäèìû';


for i:=0 to 9 do


sgb.Cells[i,1]:=floattostrf(b[i],fffixed,5,3);


end; end;


procedure TForm1.RadioGroup1Click(Sender: TObject);


var xxx:real;


begin series1.Clear; series2.Clear; series3.Clear;


case radiogroup1.ItemIndex of


0: begin groupbox7.Visible:=true;


label28.Caption:='x2='; label29.Caption:='x3=';


label30.Caption:='x2='; label31.Caption:='x3=';


label32.Caption:='x2='; label33.Caption:='x3=';


label34.Caption:='x1=';


xp2[1]:=strtofloat(edit1.text); xp3[1]:=strtofloat(edit2.text);


xp2[2]:=strtofloat(edit3.text); xp3[2]:=strtofloat(edit4.text);


xp2[3]:=strtofloat(edit5.text); xp3[3]:=strtofloat(edit6.text);


xxx:=-1;


while xxx<=1 do


begin series1.AddXY(xxx,fy(xxx,xp2[1],xp3[1]));


series2.AddXY(xxx,fy(xxx,xp2[2],xp3[2]));


series3.AddXY(xxx,fy(xxx,xp2[3],xp3[3]));


xxx:=xxx+0.01; end;


memo3.Clear;


memo3.Lines.Add('Ëèíèè ðåãðåññèè:');


memo3.Lines.Add('y= '+floattostrf(fy(0,xp2[1],xp3[1]),fffixed,4,2)+


' + '+floattostrf(b[1]+b[4]*xp2[1]+b[5]*xp3[1],fffixed,4,2)+


'*x1 + '+floattostrf(b[7],fffixed,4,2)+'*x1^2');


memo3.Lines.Add('y= '+floattostrf(fy(0,xp2[2],xp3[2]),fffixed,4,2)+


' + '+floattostrf(b[1]+b[4]*xp2[2]+b[5]*xp3[2],fffixed,4,2)+


'*x1 + '+floattostrf(b[7],fffixed,4,2)+'*x1^2');


memo3.Lines.Add('y= '+floattostrf(fy(0,xp2[3],xp3[3]),fffixed,4,2)+


' + '+floattostrf(b[1]+b[4]*xp2[3]+b[5]*xp3[3],fffixed,4,2)+


'*x1 + '+floattostrf(b[7],fffixed,4,2)+'*x1^2');


end;


1: begin groupbox7.Visible:=true;


label28.Caption:='x1='; label29.Caption:='x3=';


label30.Caption:='x1='; label31.Caption:='x3=';


label32.Caption:='x1='; label33.Caption:='x3=';


label34.Caption:='x2=';


xp1[1]:=strtofloat(edit1.text); xp3[1]:=strtofloat(edit2.text);


xp1[2]:=strtofloat(edit3.text); xp3[2]:=strtofloat(edit4.text);


xp1[3]:=strtofloat(edit5.text); xp3[3]:=strtofloat(edit6.text);


xxx:=-1;


while xxx<=1 do


begin series1.AddXY(xxx,fy(xp1[1],xxx,xp3[1]));


series2.AddXY(xxx,fy(xp1[2],xxx,xp3[2]));


series3.AddXY(xxx,fy(xp1[3],xxx,xp3[3]));


xxx:=xxx+0.01;


end;


memo3.Clear;


memo3.Lines.Add('Ëèíèè ðåãðåññèè:');


memo3.Lines.Add('y= '+floattostrf(fy(xp1[1],0,xp3[1]),fffixed,4,2)+


' + '+floattostrf(b[2]+b[4]*xp1[1]+b[6]*xp3[1],fffixed,4,2)+


'*x2 + '+floattostrf(b[8],fffixed,4,2)+'*x2^2');


memo3.Lines.Add('y= '+floattostrf(fy(xp1[2],0,xp3[2]),fffixed,4,2)+


' + '+floattostrf(b[2]+b[4]*xp1[2]+b[6]*xp3[2],fffixed,4,2)+


'*x2 + '+floattostrf(b[8],fffixed,4,2)+'*x2^2');


memo3.Lines.Add('y= '+floattostrf(fy(xp1[3],0,xp3[3]),fffixed,4,2)+


' + '+floattostrf(b[2]+b[4]*xp1[3]+b[6]*xp3[3],fffixed,4,2)+


'*x2 + '+floattostrf(b[8],fffixed,4,2)+'*x2^2');


end;


2: begin groupbox7.Visible:=true;


label28.Caption:='x1='; label29.Caption:='x2=';


label30.Caption:='x1='; label31.Caption:='x2=';


label32.Caption:='x1='; label33.Caption:='x2=';


label34.Caption:='x3=';


xp1[1]:=strtofloat(edit1.text); xp2[1]:=strtofloat(edit2.text);


xp1[2]:=strtofloat(edit3.text); xp2[2]:=strtofloat(edit4.text);


xp1[3]:=strtofloat(edit5.text); xp2[3]:=strtofloat(edit6.text);


xxx:=-1;


while xxx<=1 do


begin series1.AddXY(xxx,fy(xp1[1],xp2[1],xxx));


series2.AddXY(xxx,fy(xp1[2],xp2[2],xxx));


series3.AddXY(xxx,fy(xp1[3],xp2[3],xxx));


xxx:=xxx+0.01; end;


memo3.Clear;


memo3.Lines.Add('Ëèíèè ðåãðåññèè:');


memo3.Lines.Add('y= '+floattostrf(fy(xp1[1],xp2[1],0),fffixed,4,2)+


'+'+floattostrf(b[3]+b[5]*xp1[1]+b[6]*xp2[1],fffixed,4,2)+


x3 + '+floattostrf(b[9],fffixed,4,2)+'*x3^2');


memo3.Lines.Add('y= '+floattostrf(fy(xp1[2],xp2[2],0),fffixed,4,2)+


+ '+floattostrf(b[3]+b[5]*xp1[2]+b[6]*xp2[2],fffixed,4,2)+


x3 + '+floattostrf(b[9],fffixed,4,2)+'*x3^2');


memo3.Lines.Add('y= '+floattostrf(fy(xp1[3],xp2[3],0),fffixed,4,2)+


' + '+floattostrf(b[3]+b[5]*xp1[3]+b[6]*xp2[3],fffixed,4,2)+


'*x3 + '+floattostrf(b[9],fffixed,4,2)+'*x3^2'); end;


else groupbox7.Visible:=false;


end;


end;


procedure TForm1.RadioGroup2Click(Sender: TObject);


var px,yy,ymax,ymin:real;


xxx,xmax,xmin:mas;


begin series4.Clear; series5.Clear; series6.Clear;


px:=strtofloat(edit13.Text);


case radiogroup2.ItemIndex of


0:begin yy:=10; ymax:=0; ymin:=48;


label40.Caption:='x3=';


label41.Caption:='x1min='; label42.Caption:='x2min=';


label44.Caption:='x1max='; label45.Caption:='x2max=';


while yy<=48 do


begin xxx[1]:=-1;


while xxx[1]<=1 do


begin xxx[2]:=-1;


while xxx[2]<=1 do


begin if abs(fy(xxx[1],xxx[2],px)-yy)<=0.02


then series4.AddXY(xxx[1],xxx[2]);


if fy(xxx[1],xxx[2],px)<=ymin then


begin xmin[1]:=xxx[1]; xmin[2]:=xxx[2];


ymin:=fy(xxx[1],xxx[2],px);end;


if fy(xxx[1],xxx[2],px)>=ymax then


begin xmax[1]:=xxx[1]; xmax[2]:=xxx[2];


ymax:=fy(xxx[1],xxx[2],px);end;


xxx[2]:=xxx[2]+0.005; end;


xxx[1]:=xxx[1]+0.005; end;


yy:=yy+1.5; end;


series5.AddXY(xmax[1],xmax[2]); series6.AddXY(xmin[1],xmin[2]);


edit14.Text:=floattostrf(xmin[1],fffixed,5,2);


edit15.Text:=floattostrf(xmin[2],fffixed,5,2);


edit16.Text:=floattostrf(ymin,fffixed,5,2);


edit17.Text:=floattostrf(xmax[1],fffixed,5,2);


edit18.Text:=floattostrf(xmax[2],fffixed,5,2);


edit19.Text:=floattostrf(ymax,fffixed,5,2); end;


1: begin yy:=10; ymax:=0; ymin:=48;


label40.Caption:='x2=';


label41.Caption:='x1min='; label42.Caption:='x3min=';


label44.Caption:='x1max='; label45.Caption:='x3max=';


while yy<=48 do


begin xxx[1]:=-1;


while xxx[1]<=1 do


begin xxx[3]:=-1;


while xxx[3]<=1 do


begin if abs(fy(xxx[1],px,xxx[3])-yy)<=0.02


then series4.AddXY(xxx[1],xxx[3]);


if fy(xxx[1],px,xxx[3])<=ymin then


begin xmin[1]:=xxx[1]; xmin[3]:=xxx[3];


ymin:=fy(xxx[1],px,xxx[3]);end;


if fy(xxx[1],px,xxx[3])>=ymax then


begin xmax[1]:=xxx[1]; xmax[3]:=xxx[3];


ymax:=fy(xxx[1],px,xxx[3]);end;


xxx[3]:=xxx[3]+0.005; end;


xxx[1]:=xxx[1]+0.005; end;


yy:=yy+1.5; end;


series5.AddXY(xmax[1],xmax[3]); series6.AddXY(xmin[1],xmin[3]);


edit14.Text:=floattostrf(xmin[1],fffixed,5,2);


edit15.Text:=floattostrf(xmin[3],fffixed,5,2);


edit16.Text:=floattostrf(ymin,fffixed,5,2);


edit17.Text:=floattostrf(xmax[1],fffixed,5,2);


edit18.Text:=floattostrf(xmax[3],fffixed,5,2);


edit19.Text:=floattostrf(ymax,fffixed,5,2); end;


2: begin yy:=10;


ymax:=0; ymin:=48;


label40.Caption:='x1=';


label41.Caption:='x2min='; label42.Caption:='x3min=';


label44.Caption:='x2max='; label45.Caption:='x3max=';


while yy<=48 do


begin xxx[2]:=-1; while xxx[2]<=1 do begin xxx[3]:=-1;


while xxx[3]<=1 do begin if abs(fy(px,xxx[2],xxx[3])-yy)<=0.02


then series4.AddXY(xxx[2],xxx[3]);


if fy(px,xxx[2],xxx[3])<=ymin then


begin xmin[3]:=xxx[3];xmin[2]:=xxx[2];


ymin:=fy(px,xxx[2],xxx[3]);end;


if fy(px,xxx[2],xxx[3])>=ymax then


begin xmax[3]:=xxx[3]; xmax[2]:=xxx[2];


ymax:=fy(px,xxx[2],xxx[3]);end;


xxx[3]:=xxx[3]+0.005; end;


xxx[2]:=xxx[2]+0.005; end;


yy:=yy+1.5; end;


series5.AddXY(xmax[2],xmax[3]); series6.AddXY(xmin[2],xmin[3]);


edit14.Text:=floattostrf(xmin[2],fffixed,5,2);


edit15.Text:=floattostrf(xmin[3],fffixed,5,2);


edit16.Text:=floattostrf(ymin,fffixed,5,2);


edit17.Text:=floattostrf(xmax[2],fffixed,5,2);


edit18.Text:=floattostrf(xmax[3],fffixed,5,2);


edit19.Text:=floattostrf(ymax,fffixed,5,2);


end; end;end;


procedure TForm1.Button3Click(Sender: TObject);


var i:integer; max,min:mas;


maxy,miny:real;


begin series7.Clear;


for i:=1 to 3 do


xh[i]:=xh[i]+0.02;


max[1]:=series1.MaxYValue;max[2]:=series2.MaxYValue;


max[3]:=series3.MaxYValue; min[1]:=series1.MinYValue;


min[2]:=series2.MinYValue; min[3]:=series3.MinYValue;


maxy:=max[1]; miny:=min[1];


for i:=2 to 3 do begin


if max[i]>=maxy then maxy:=max[i];


if min[i]<=miny then miny:=min[i];


end;


case radiogroup1.ItemIndex of


0: begin


edit9.Text:=floattostr(xh[1]);


edit10.Text:=floattostr(fy(xh[1],strtofloat(edit1.Text),strtofloat(edit2.Text)));


edit11.Text:=floattostr(fy(xh[1],strtofloat(edit3.Text),strtofloat(edit4.Text)));


edit12.Text:=floattostr(fy(xh[1],strtofloat(edit5.Text),strtofloat(edit6.Text)));


series7.AddXY(xh[1],maxy); series7.AddXY(xh[1],miny); end;


1: begin


series7.AddXY(xh[2],maxy); series7.AddXY(xh[2],miny);


edit9.Text:=floattostr(xh[2]);


edit10.Text:=floattostr(fy(strtofloat(edit1.Text),xh[2],strtofloat(edit2.Text)));


edit11.Text:=floattostr(fy(strtofloat(edit3.Text),xh[2],strtofloat(edit4.Text)));


edit12.Text:=floattostr(fy(strtofloat(edit5.Text),xh[2],strtofloat(edit6.Text))) end;


2: begin series7.AddXY(xh[3],maxy); series7.AddXY(xh[3],miny);


edit9.Text:=floattostr(xh[3]);


edit10.Text:=floattostr(fy(strtofloat(edit1.Text),strtofloat(edit2.Text),xh[3]));


edit11.Text:=floattostr(fy(strtofloat(edit3.Text),strtofloat(edit4.Text),xh[3]));


edit12.Text:=floattostr(fy(strtofloat(edit5.Text),strtofloat(edit6.Text),xh[3]))


end; end;end;


procedure TForm1.Button4Click(Sender: TObject);


var i:integer; max,min:mas;


maxy,miny:real;


begin series7.Clear;


for i:=1 to 3 do


xh[i]:=xh[i]-0.02;


max[1]:=series1.MaxYValue; max[2]:=series2.MaxYValue;


max[3]:=series3.MaxYValue; min[1]:=series1.MinYValue;


min[2]:=series2.MinYValue; min[3]:=series3.MinYValue;


maxy:=max[1]; miny:=min[1];


for i:=2 to 3 do begin


if max[i]>=maxy then maxy:=max[i];


if min[i]<=miny then miny:=min[i]; end;


case radiogroup1.ItemIndex of


0: begin edit9.Text:=floattostr(xh[1]);


edit10.Text:=floattostr(fy(xh[1],strtofloat(edit1.Text),strtofloat(edit2.Text)));


edit11.Text:=floattostr(fy(xh[1],strtofloat(edit3.Text),strtofloat(edit4.Text)));


edit12.Text:=floattostr(fy(xh[1],strtofloat(edit5.Text),strtofloat(edit6.Text)));


series7.AddXY(xh[1],maxy); series7.AddXY(xh[1],miny); end;


1: begin series7.AddXY(xh[2],maxy); series7.AddXY(xh[2],miny);


edit9.Text:=floattostr(xh[2]);


edit10.Text:=floattostr(fy(strtofloat(edit1.Text),xh[2],strtofloat(edit2.Text)));


edit11.Text:=floattostr(fy(strtofloat(edit3.Text),xh[2],strtofloat(edit4.Text)));


edit12.Text:=floattostr(fy(strtofloat(edit5.Text),xh[2],strtofloat(edit6.Text))) end;


2: begin series7.AddXY(xh[3],maxy); series7.AddXY(xh[3],miny);


edit9.Text:=floattostr(xh[3]);


edit10.Text:=floattostr(fy(strtofloat(edit1.Text),strtofloat(edit2.Text),xh[3]));


edit11.Text:=floattostr(fy(strtofloat(edit3.Text),strtofloat(edit4.Text),xh[3]));


edit12.Text:=floattostr(fy(strtofloat(edit5.Text),strtofloat(edit6.Text),xh[3])) end; end;end;


end.

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Вероятностные процессы и математическая статистика в автоматизированных системах

Слов:3772
Символов:53247
Размер:104.00 Кб.