Компьютерная обработка экспериментальных данных
Автор работы: Пользователь скрыл имя, 26 Октября 2014 в 16:22, курсовая работа
Краткое описание
В условиях современных высокопроизводительных технологических систем практически невозможно осуществлять сплошной, стопроцентный контроль качества продукции используют статистические методы выборочного контроля. При этом в роли генеральной совокупности выступает вся продукция. изготовленная за контрольный срок, например за смену. за сутки, за месяц и т.п., а в роли выборки- те отборы или пробы, подробный анализ которых дает возможность сделать вывод о возможной доле брака во всей совокупности.
Содержание
Введение 3
Задание курсового проекта 4
Теоретическая часть 4
Техника контрольных карт 4
Практическая часть 7
Алгоритм работы 7
Программная реализация алгоритма 8
Пример работы программы 10
Заключение 11
Список литературы 12
Приложение 13
Прикрепленные файлы: 1 файл
Содержание
Введение
В условиях современных высокопроизводительных
технологических систем практически невозможно
осуществлять сплошной, стопроцентный
контроль качества продукции используют
статистические методы выборочного контроля.
При этом в роли генеральной совокупности
выступает вся продукция. изготовленная
за контрольный срок, например за смену.
за сутки, за месяц и т.п., а в роли выборки-
те отборы или пробы, подробный анализ
которых дает возможность сделать вывод
о возможной доле брака во всей совокупности.
Можно выделить две основные задачи статистического
контроля:
- статистическое регулирование
качества продукции;
- статистический приемочный
контроль.
Статистическое регулирование
качества позволяет с помощью регулярных
отборов небольших по объему проб предупреждать
увеличение брака, следить за качеством
выпускаемой продукции в темпе с производственным
процессом. Статистический приемочный
контроль служит для определения доли
брака в уже изготовленной и представленной
к сдаче партии продукции.
Задание курсового
проекта
Темой данного курсового проекта
является статистическое регулирование
качества продукции.
Теоретическая
часть
Техника контрольных
карт
Практическая часть
Алгоритм работы
Программная реализация алгоритма
public
class MainClass{
public static void main (String [] args){ //основная функция
Random randNumOfExpl= new Random(); //генератор количества
проб
Random randNumOfElem= new Random(); //генератор количества
элементов в пробе
Random randExpl = new Random(); //генератор
самого числа элемента пробы
int number_of_elem= 3+ randNumOfExpl.nextInt(5); //количество
элементов
int number_of_example= 1+ randNumOfElem.nextInt(20); //количество
проб
double [][] mass_of_examples = new double[number_of_example][number_of_elem];
//массив пробы
double [] mass_of_up_mistakes= new double[number_of_elem*number_of_example];
//массив верхних ошибок
double [] mass_of_down_mistakes=new double[number_of_elem*number_of_example];
//массив нижних ошибок
double [] mass_of_range_mistakes= new double[number_of_elem*number_of_example];
//массив ошибки размаха
for (int count_of_example=0; count_of_example<number_of_example;
count_of_example++) //заполняем массив
пробы элементами
for (int count_of_elem=0; count_of_elem<number_of_elem; count_of_elem++)
mass_of_examples[count_of_example][count_of_elem]=randExpl.nextDouble()*10;
double [] map_of_mid_values= new double[number_of_example]; //средние
значения элементов для каждой пробы
for (int count_of_example=0; count_of_example<number_of_example;
count_of_example++) //заполняем массив
пробы элементами
for (int count_of_elem=0; count_of_elem<number_of_elem; count_of_elem++)
map_of_mid_values[count_of_example]+=mass_of_examples[count_of_example][count_of_elem]/number_of_elem;
double map_of_medans=0; //оценка
for (int count_of_example=0; count_of_example<number_of_example;
count_of_example++)
map_of_medans+=map_of_mid_values[count_of_example]/number_of_example;
Matrix table_of_d0= new Matrix(Var.table_of_d0);
Matrix table_of_d= new Matrix(Var.table_of_d);
Matrix table_of_t= new Matrix(Var.table_of_t);
Matrix matr_of_examples= new Matrix(mass_of_examples);
double [] range= new double[number_of_example]; //размах
for (int count_of_example=0; count_of_example<number_of_example;
count_of_example++) //расчет размаха
для каждой пробы
{
Double [] temp_mass= new Double[number_of_elem];
for (int count_of_elem=0; count_of_elem<number_of_elem; count_of_elem++)
temp_mass[count_of_elem]=mass_of_examples[count_of_example][count_of_elem];
double max=(double)Collections.max(Arrays.asList(temp_mass));
double min=(double)Collections.min(Arrays.asList(temp_mass));
range[count_of_example]=max-min;
}
double map_of_range=0; //оценка размаха
for (int count_of_example=0; count_of_example<number_of_example;
count_of_example++)
map_of_range+=range[count_of_example]/number_of_example;
double d=0; //значение табличное
for (int count=0; count<table_of_d.getColumnDimension(); count++)
//нахождение d
if(table_of_d.get(0,count)==number_of_elem)
d=table_of_d.get(1,count);
double Sy=map_of_range/d; //несмещенная оценка
double t=0; //значение функции
Стьюдента
for (int count=0; count<table_of_t.getColumnDimension(); count++)
//нахождение t
if(table_of_t.get(0,count)==number_of_elem-1)
t=table_of_t.get(1,count);
double Kyn=map_of_medans-(Sy/Math.sqrt(number_of_elem))*t; //нижний
предел
double Kyv=map_of_medans+(Sy/Math.sqrt(number_of_elem))*t; //верхний
предел
double d0=0; //значение табличное
for (int count=0; count<table_of_d0.getColumnDimension(); count++)
//нахождение d0
if(table_of_d0.get(0,count)==number_of_elem)
d0=table_of_d0.get(1,count);
double Kr=map_of_range*d0; //граница размаха
int count_of_mistake=0; //счетчик ошибки
for(int count_of_column=0;count_of_column<matr_of_examples.getColumnDimension();count_of_column++)
//ищем верхнюю ошибку
for(int count_of_row=0;count_of_row<matr_of_examples.getRowDimension();count_of_row++)
if(matr_of_examples.get(count_of_row,count_of_column)>Kyv)
{
mass_of_up_mistakes[count_of_mistake]=matr_of_examples.get(count_of_column,count_of_row);
count_of_mistake++;
}
count_of_mistake=0;
for(int count_of_column=0;count_of_column<matr_of_examples.getColumnDimension();count_of_column++)
//ищем нижнюю ошибку
for(int count_of_row=0;count_of_row<matr_of_examples.getRowDimension();count_of_row++)
if(matr_of_examples.get(count_of_row,count_of_column)<Kyn)
{
mass_of_down_mistakes[count_of_mistake]=matr_of_examples.get(count_of_column,count_of_row);
count_of_mistake++;
}
count_of_mistake=0;
for(int count_of_column=0;count_of_column<matr_of_examples.getColumnDimension();count_of_column++)
//ищем ошибку размаха
for(int count_of_row=0;count_of_row<matr_of_examples.getRowDimension();count_of_row++)
if(matr_of_examples.get(count_of_row,count_of_column)>Kr)
{
mass_of_range_mistakes[count_of_mistake]=matr_of_examples.get(count_of_column,count_of_row);
count_of_mistake++;
}
//вывод всех параметров
System.out.println("Привет ^_^ ");
System.out.println("Таблица d ");
table_of_d.print(table_of_d.getColumnDimension(), table_of_d.getRowDimension());
System.out.println("Таблица d0");
table_of_d0.print(table_of_d0.getColumnDimension(), table_of_d0.getRowDimension());
System.out.println("Таблица t");
table_of_t.print(table_of_t.getColumnDimension(), table_of_t.getRowDimension());
System.out.println("Число примеров " + number_of_elem);
System.out.println("Количество проб " + number_of_example);
System.out.println("Значения проб");
matr_of_examples.print(matr_of_examples.getColumnDimension(),matr_of_examples.getRowDimension());
System.out.println("Средние значения проб");
for (int count_of_example=0; count_of_example<number_of_example;
count_of_example++)
System.out.print(map_of_mid_values[count_of_example]+" ");
System.out.println("\nОценка "+ map_of_medans);
System.out.println("\nРазмах каждой пробы");
for (int count_of_example=0; count_of_example<number_of_example;
count_of_example++)
System.out.print(range[count_of_example]+" ");
System.out.println("\nОценка размаха "+ map_of_range);
System.out.println("\nНесмещенная оценка "+
Sy);
System.out.println("\nНижняя граница "+ Kyn);
System.out.println("\nВерхняя граница "+ Kyv);
System.out.println("\nГраница размаха "+ Kr);
for (int count=0; count<mass_of_down_mistakes.length; count++)
{
if(mass_of_down_mistakes[count]!=0){
System.out.println("Есть элемент(ы), выходящих(ие)
за верхнюю границу");
break;
}
if(mass_of_up_mistakes[count]!=0){
System.out.println("Есть элемент(ы), выходящих(ие)
за нижнюю границу");
break;
}
if(mass_of_range_mistakes[count]!=0){
System.out.println("Есть элемент(ы), выходящих(ие)
за границу размаха");
break;
}
else
if(count==mass_of_down_mistakes.length-1)
System.out.print("В пробе отсутствует брак");
}
}
}
Пример работы программы
Рис.1. Первый пример
работы программы
Рис.2. Второй пример
работы
Заключение
В данной лабораторной работе
были изучены статистическое регулирование
качества продукции с помощью техники
контрольных карт, которые позволяют на
основе небольших проб выявить брак в
изготовленной продукции без сложных
статистических вычислений. Были закреплены
практические навыки программирования
языка Java в среде разработки IntelliJ IDEA CE.
Список литературы
- Статистические методы в инженерных
исследованиях под ред. Г.К.Круга (Лабораторный
практикум).
- Айвазян С.А., Мхитарян В.С. Прикладная
статистика в задачах и упражнениях, М.,
2000.
Приложение
Информация о работе Компьютерная обработка экспериментальных данных