Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Tyutterin_Yakov_Z1411_with_1_and_2

.pdf
Скачиваний:
0
Добавлен:
07.01.2025
Размер:
5.51 Mб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное автономное образовательное учреждение высшего образования «САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

Кафедра

Прикладной информатики

.

 

 

 

 

(наименование)

 

 

 

ОТЧЁТ ПО ПРАКТИКЕ

 

 

 

 

 

 

ЗАЩИЩЁН С ОЦЕНКОЙ

 

 

 

 

 

 

РУКОВОДИТЕЛЬ

 

 

 

 

 

 

доц., канд. техн. наук, доц.

 

 

 

 

О. О. Жаринов

 

 

 

 

 

 

должность, уч. степень, звание

 

 

подпись, дата

 

инициалы, фамилия

ОТЧЁТ ПО ПРАКТИКЕ

вид практики

 

Производственная

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

тип практики

 

Научно-исследовательская работа

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

на тему индивидуального задания

 

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

 

 

исследовательских задач

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

выполнен

Тюттериным Яковом Николаевичем

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

фамилия, имя, отчество обучающегося в творительном падеже

 

 

по направлению подготовки

09.00.00

 

 

Информатика и вычислительная техника

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

код

 

 

 

наименование направления

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

наименование направления

 

 

 

 

 

 

направленности

 

 

09.03.03

 

 

Прикладная информатика в

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

код

 

 

 

наименование направленности

 

 

информационной сфере

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

наименование направленности

 

 

 

 

 

 

Обучающийся группы № Z1411

 

 

 

 

 

 

Я. Н. Тюттерин

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

номер

 

 

подпись, дата

 

инициалы, фамилия

 

 

Санкт–Петербург 2024

2

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

федеральное государственное автономное образовательное учреждение высшего образования

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

Кафедра прикладной информатики

Направление подготовки: 09.03.03 Прикладная информатика

ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ

на производственную практику (научно-исследовательскую работу)

для

Тюттерина Якова Николаевича

 

 

 

(ФИО студента полностью)

 

Студента 3 курса

учебная группа №

 

Z1411

Место проведения практики: Санкт-Петербургский государственный университет

аэрокосмического

приборостроения,

адрес организации: Большая Морская ул., 67, Санкт-Петербург

 

 

(указывается полное наименование структурного подразделения / профильной организации и её структурного подразделения, а также их фактический адрес)

Срок выполнения научно-исследовательской работы с «___» __________ 2024 г. по

«__» __________ 2024 г.

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

3

происходить частичная работа со средой IntelliJ Idea, языком программирования Java и

библиотекой java.lang.Math.

Задачи научно-исследовательской работы:

проведение сбора, анализа и обобщения научного материала по теме практики;

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

проведение математических исследований, требующих вычислений и аналитических выкладок;

разработка и анализ алгоритмов;

математическое моделирование, компьютерный эксперимент;

анализ и обработка данных;

визуализация, научная и инженерная графика;

разработка графических и расчетных приложений.

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

современная проблематика исследуемой предметной области;

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

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

Планируемые результаты научно-исследовательской работы:

закрепление знаний, полученных в ходе обучения;

получение реального опыта научно-исследовательской деятельности;

формирование навыков ведения научно-исследовательской работы.

Рассмотрено на заседании кафедры

(протокол от « »

2024 г. № )

СОГЛАСОВАНО1

УТВЕРЖДАЮ

______________________________________ ________________________________________

Руководитель по практической подготовке

Руководитель по практической подготовке

от профильной организации

от Института

«___»_____________________ 20____ г.

«___»_____________________ 20____ г.

Задание принято к исполнению:

Тюттерин Я.Н.

«10» апреля 2024 г.

 

(подпись студента)

 

1 при прохождении практики в профильной организации

 

4

Оглавление

 

Введение...........................................................................................................................

5

Задание 1. Простейшие вычисления в Java.....................................................................

6

Задание 2. Работа с массивами. Векторы-столбцы и векторы-строки...........................

7

Задание 3. Работа с массивами ......................................................................................

14

Задание 4. Двумерные массивы и матрицы ..................................................................

19

Задание 5. Блочные матрицы.........................................................................................

25

Задание 6. Визуализация матриц и поэлементные операции над ними.......................

31

Задание 7. Графики, диаграммы и гистограммы ..........................................................

39

Задание 8. М-файлы. Численные методы и программирование ..................................

46

Задание 9. Программирование. Операторы цикла........................................................

49

Задание на выполнение этапа №2. Исследование метода Монте-Карло для

 

вычисления площадей плоских фигур ...................................................................................

51

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

58

5

Введение

Зарождение системы MATLAB относится к концу 70-х годов, когда первая версия этой системы была использована в Университете Нью Мехико и в Стэндфордском университете для преподавания курсов теории матриц, линейной алгебры и численного анализа. В это время активно разрабатывались пакеты прикладных программ по линейной алгебре LINPACK и EISPACK на языке FORTRAN, и авторы системы MATLAB искали способы использовать эти пакеты, не программируя на языке FORTRAN. Сейчас возможности системы значительно превосходят возможности первоначальной версии матричной лаборатории Matrix Laboratory. Нынешний MATLAB – это высокоэффективный язык инженерных и научных вычислений. Он поддерживает математические вычисления, визуализацию научной графики и программирование с использованием легко осваиваемого операционного окружения, когда задачи и их решения могут быть представлены в нотации, близкой к математической. Задачей данной практической работы является приобретение навыков для пользования системой MATLAB. Для получения таких навыков необходимо будет решить несколько практических заданий. В ходе выполнения заданий будут получены знания по работе с векторами, матрицами, символьными массивами, по построению логических областей.

Некоторые задания будут выполнены в среде IntelliJ Idea на языке программирования Java. Среди стандартных библиотек данного языка программирования присутствует java.lang.Math, которая позволяет выполнять стандартные операции вычисления, необходимые для выполнения заданий на производственно-исследовательскую работу.

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

6

Задание 1. Простейшие вычисления в Java

Задание 1.1:

Запишем формулу на языке программирования Java:

import static java.lang.Math.*;

public class Main {

public static void main(String[] args) {

double result = (cTan(3.2) + sqrt(4 + cos(1.3))) / pow((cos(1.6 * PI) - 3 * tan(2.8)), 3)

- pow(E, -5 / 9.0) * (1 + cos(3 * PI)); System.out.println(result);

}

private static double cTan(double val) { return 1 / tan(3.2);

}

}

Результат вычисления представлен на рисунке 1.

Рисунок 1 – Результат вычисления

7

Задание 1.2:

При текущем условии задача в результате будет NaN(результат не определен), так как результатом вычисления косинуса из 9.1 будет отрицательное число, а извлечь корень из отрицательного числа – возможно, но мы выйдем за пределы действительных чисел. Следовательно, добавляем дополнительную операцию по преобразованию отрицательного числа к положительному. Реализация на языке программирования Java представлен ниже:

public class Main {

public static void main(String[] args) { double x = sqrt(log(2.6)) / sin(5.4); double y = sqrt(abs(cos(9.1)) / log(3.4)); double z = sqrt(log(5.48) / log(3.6));

double result = (x + y) / z; System.out.println(result);

}

}

Результат вычисления представлен на рисунке 2.

Рисунок 2 – Результат вычисления

Задание 2. Работа с массивами. Векторы-столбцы и векторы-строки

8

Задание 2.1:

Решение на языке программирования Java представлено ниже, где при переборе каждого элемента из векторов происходит их суммирование.

import java.util.Arrays;

public class Main {

public static void main(String[] args) { double[] a = {6.2, 9.6, 3.5}; double[] b = {5.5, 9.8, 1.3};

double[] result = new double[a.length];

for (int i = 0; i < a.length; i++) { result[i] = a[i] + b[i];

}

System.out.println(Arrays.toString(result));

}

}

Результат вычисления представлен на рисунке 3.

Рисунок 3 – Результат вычисления суммы векторов

9

Задание 2.2:

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

import java.util.Arrays;

public class Main {

public static void main(String[] args) { double[] v = {4.2, 7.3, 7.9, 3.6, 3.5}; System.out.println(Arrays.toString(v));

System.out.println(v[1]); //Указываем 1, так как индексы в массиве с

0

v[3] = 5.7; System.out.println(Arrays.toString(v)); double[] w = {v[0], v[4], v[2]}; System.out.println(Arrays.toString(w));

}

}

Результат вычисления представлен на рисунке 4.

Рисунок 4 – Результат выполнения

Задание 2.3:

Реализация на языке программирования Java представлена ниже.

import java.util.Arrays;

public class Main {

public static void main(String[] args) {

double[] w = {9.8, 7.4, 1.3, 2.5, 2.1, 3.7, 2.9}; System.out.println(Arrays.toString(w));

for (int i = 2; i < 7; i++) { //[3; 7] w[i] = 0;

}

System.out.println(Arrays.toString(w));

double[] w1 = new double[4];

for (int i = 1, j = 0; i < 5; i++, j++) { //[2; 5] w1[j] = w[i];

}

System.out.println(Arrays.toString(w1));

10

double[] w2 = new double[w.length - 1]; for (int i = 0, j = 0; i < w.length; i++) {

if (i == 1) { //Исключаем второй элемент continue;

}

w2[j++] = w[i];

}

System.out.println(Arrays.toString(w2));

}

}

Результат представлен на рисунке 5.

Рисунок 5 – Результат выполнения

Задание 2.4:

Реализация представлена ниже. import java.util.Arrays;

public class Main {

public static void main(String[] args) { double[] z = {2.7, 4.4, 3.5, 5.2, 6.6, 8.3}; System.out.println(Arrays.toString(z)); double pow = 1;

double min = Double.MAX_VALUE; double max = Double.MIN_VALUE; int maxIndex = 0;

for (int i = 0; i < z.length; i++) { double curr = z[i];

pow *= curr;

if (min > curr) { min = curr;

}

if (max < curr) { max = curr; maxIndex = i;

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]