Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Присвоение и вывод значений переменных и функцийСтр 1 из 5Следующая ⇒
МАТЕМАТИЧЕСКИЕ РАСЧЕТЫ В MATLAB
Омск ∙ 2010 ГОУ ВПО «Сибирская государственная автомобильно-дорожная
Кафедра «Информационные технологии»
МАТЕМАТИЧЕСКИЕ РАСЧЕТЫ В MATLAB
Методические указания
Составители: Н.Ф. Антипенко, Т.А. Санькова
Омск 2010 УДК 004.9:517:512 ББК 32.988-5:22.141:22.16
Рецензент канд. техн. наук, доц. А.А. Руппель (СибАДИ)
Работа одобрена научно-методическим советом специальности «Профессиональное обучение» в качестве методических указаний для студентов специальности «Профессиональное обучение».
Математические расчеты в MATLAB: методические указания / сост.: Н.Ф. Антипенко, Т.А. Санькова.− Омск: СибАДИ, 2010. − 56 с.
Данная работа представляет собой методические указания для студентов, изучающих дисциплину «Пакеты прикладных программ». Методические указания включают теоретический материал и задания для лабораторных и контрольных работ, позволяющие освоить основные принципы работы с пакетом MATLAB: арифметические вычисления, работа с массивами, построение графиков и поверхностей, решение уравнений и систем уравнений, вычисление интегралов, пределов, производных функций, решение дифференциальных уравнений.
Табл. 7. Ил. 15. Библиогр.: 3 назв.
© ГОУ «СибАДИ», 2010 ВВЕДЕНИЕ
MATLAB – одна из старейших, тщательно проработанных и проверенных временем систем автоматизации математических расчетов, построенная на расширенном представлении и применении матричных операций. Однако синтаксис языка программирования системы настолько продуман, что эта ориентация почти не ощущается теми пользователями, которых не интересуют непосредственно матричные вычисления. Матрицы широко применяются в сложных математических расчетах, например при решении задач линейной алгебры и математического моделирования статических и динамических систем и объектов. Они являются основой автоматического составления и решения уравнений состояния динамических объектов и систем.
В MATLAB реализованы современные численные методы компьютерной математики, используются мощные средства графической визуализации и анимационной графики. Возможности системы весьма обширны, а по скорости выполнения задач она нередко превосходит своих конкурентов и применима для расчетов практически в любой области науки и техники.
ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ
Пользовательский интерфейс системы MATLAB многооконный и имеет ряд средств прямого доступа к различным компонентам системы (рис. 1). Основную часть окна приложения занимает командное окно (Command Window), в котором расположена строка ввода, начинающаяся специальным маркером – символами «>>». В ней записываются команды для выполнения системой. В левой части окна приложения расположено окно истории команд (Command History), в котором отображаются вводимые пользователем команды. При необходимости эти команды можно снова выполнить, сделав двойной щелчок мыши по нужной команде в окне истории команд. При наборе команд пользователь может использовать клавиши [←], [→], [Home], [End], [Delete], [BackSpace] для перемещения по строке ввода или удаления символов. Для отмены ввода (очистки строки ввода) используется клавиша [Esc]. Следует обратить внимание на применение клавиш [↑] и [↓]. Они используются для подстановки после маркера строки ввода ранее введенных команд, например для их исправления, дублирования или дополнения. При этом указанные клавиши обеспечивают перелистывание ранее введенных строк снизу вверх или сверху вниз.
Рис. 1. Интерфейс системы MATLAB
Ввод команды завершается нажатием клавиши [Enter], при этом MATLAB сразу же выполняет команду и выводит в следующей строке результат. Для того чтобы результат не выводился на экран, в конце команды ставится символ «;». Если команда слишком длинная, то можно перенести часть ее на новую строку. Для этого в месте переноса нужно поставить пробел и троеточие (…), а затем с новой строки продолжить запись команды. Для очистки командного окна используется команда clc.
ОСНОВНЫЕ ОБЪЕКТЫ MATLAB
Центральным понятием всех математических систем является математическое выражение. Оно задает то, что должно быть вычислено в численном (реже в символьном) виде. Математические выражения строятся на основе чисел, констант, переменных, операторов, функций и разных спецзнаков.
Число – простейший объект языка MATLAB, представляющий количественные данные. Числа используются в общепринятом представлении о них. Они могут быть целыми, дробными, с фиксированной и плавающей запятой, комплексные. Примеры представления чисел в MATLAB приведены в табл. 1.
Таблица 1 Примеры представления чисел
Константа – это предварительно определенное числовое или символьное значение, представленное уникальным именем. В MATLAB существуют некоторые стандартные константы, например число «пи» (pi), значение мнимой единицы (i). Символьной константой считается любая последовательность символов, заключенных в апострофы, например 'Hello!'. Переменная – это имеющий имя объект, способный хранить некоторые данные. В зависимости от этих данных переменные могут быть числовыми или символьными, векторными или матричными. Имя переменной должно начинаться с буквы, может содержать буквы, цифры и символ подчеркивания. Имя не должно совпадать с именами других переменных, функций и процедур системы. Прописные и строчные буквы в MATLAB различаются. Таким образом, переменные s и S – это две разные переменные. Для уничтожения определения переменной используется специальная команда: ● clear – уничтожает все переменные; ● clear x – уничтожает переменную x; ● clear x,y – уничтожает переменные x и y. Оператор – это специальное обозначение для определенной операции над данными – операндами. Например, арифметическими операторами являются знаки суммы (+), вычитания (–), умножения (*), деления (/), возведения в степень (^). Операторы используются совместно с операндами. Например, в выражении 2+3 знак «+» является оператором сложения, а числа 2 и 3 – операндами. Функции – это имеющие уникальные имена объекты, выполняющие определенные преобразования своих аргументов и при этом возвращающие результаты этих преобразований. Все имена функций в MATLAB пишутся строчными буквами. Перечень основных функций приведен в табл. 2.
Таблица 2 Основные функции
Табулирование функции
Протабулировать функцию – это вычислить все ее значения при каждом значении аргумента в указанном диапазоне. При табулировании функции необходимо задать значения аргумента, при которых будут вычисляться значения функции. Для задания диапазона чисел необходимо написать имя переменной, поставить знак присваивания, а затем через двоеточие начальное значение, шаг и конечное значение:
Имя_переменной=Начальное_значение:Шаг:Конечное_значение;
Если шаг равен 1, то его можно не указывать, а задать только начальное и конечное значения. После ввода диапазона значений аргумента функции задается сама функция. Так как аргумент имеет несколько значений, то выполнение операций умножения, деления и возведения в степень должно выполняться поэлементно над каждым из значений. Для этого используются операции .*, ./ и .^, соответственно. Для умножения на число, сложения и вычитания используются обычные операции *, + и –, соответственно.
Пример
Вычислить значения функций и при x ∈[–1,5; 1,5] с шагом 0,5.
Порядок ввода: >> x=–1.5:0.5:1.5 >> y=2*x.*sin(x) >> z=3*x.^2+cos(x)
В результате получим: x = –1.5000 –1.0000 –0.5000 0 0.5000 1.0000 1.5000 y = 2.9925 1.6829 0.4794 0 0.4794 1.6829 2.9925 z = 6.8207 3.5403 1.6276 1.0000 1.6276 3.5403 6.8207
ЛАБОРАТОРНАЯ РАБОТА № 1
I. Вычислить значения выражений при a =3, b =2,6:
II. Протабулировать функции f, g, y, f + g: 1) x ∈[–2; 2], h =0,2, f =| x –1|2, g =cos2(3 x), z =2 x 3–3 x 2+1; 2) x ∈[–4; 3], h =0,6, f =ln| x +5|, g =sin x +cos(2 x), z = ; 3) x ∈[2; 12], h =1, f =lg x +1, g =3| x –3|, z = .
РАБОТА С МАТРИЦАМИ
Элементы матрицы задаются в квадратных скобках, причем элементы одной строки отделяются друг от друга пробелом или запятой, а строки отделяются друг от друга точкой с запятой.
Пример
Задать матрицу М 2×2 =
Порядок ввода: >> М = [3 –1; 5.5 1]
Для обращения к отдельному элементу матрицы нужно указать имя матрицы и индексы элемента в круглых скобках.
Пример
Присвоить элементу второй строки первого столбца матрицы М значение 2.
Порядок ввода: >> М(2, 1)=2
Операции над матрицами
Для работы с матрицами в MATLAB существуют специальные команды и функции. Основные операции с матрицами приведены в табл. 3.
Таблица 3 Операции с матрицами
Пример
Даны матрицы
Вычислить A ⋅ B –1. Порядок ввода: >> А=[2 –1;1 3] >> B=[4 6;–5 3] >> A*B^–1
В результате получим матрицу .
ЛАБОРАТОРНАЯ РАБОТА № 2
I. Даны матрицы: 1. Вычислить: 1) сумму матриц А и В; 2) разность матрицы В и А; 3) поэлементное произведение матриц; 4) матричное произведение матриц; 5) квадрат матрицы А (умножить матрицу А саму на себя); 6) поэлементное возведение матрицы А в квадрат; 7) определитель матрицы А; 8) обратную матрицу к матрице В; 9) след матрицы В; 10) сумму элементов каждого столбца матрицы А; 11) произведение элементов каждой строки матрицы В; 12) сумму элементов на главной диагонали матрицы В; 13) произведение минимальных элементов каждого столбца матрицы А; 14) среднее значение всех элементов матрицы В. 2. Отразить матрицу А сверху вниз. 3. Отразить матрицу В слева направо. 4. Повернуть матрицу В влево на 90°. 5. Повернуть матрицу В вправо на 90°. 6. Умножить матрицу В на число 2. 7. Транспонировать матрицу А. 8. Присвоить последнему элементу матрицы В значение 7. 9. Увеличить второй элемент первой строки матрицы А на 2. 10. Удалить из матрицы А последнюю строку. 11. Удалить из матрицы В первый столбец. 12. Отсортировать элементы в каждом столбце матрицы В. 13. Отсортировать элементы в каждой строке матрицы А.
II. Даны массивы: Вычислить: 1. В Т. 2. А + С –1. 3. А –1∙ В Т. 4. В ∙ D. 5. A ∙ C. 6. C ∙ A. 7. A ∙ A ∙ A. 8. 2∙ D + B T. 9. | A |+| C |. 10. (А Т+ С)2. 11. А ∙ D ∙ В. 12. 3∙ А / С.
Цвет линии
Таблица 5 Тип точки
Таблица 6 Тип линии
При отсутствии указания на цвет линий и точек он выбирается автоматически из таблицы цветов.
Пример
1. Построить график функции y =sin x на отрезке [–4; 4], шаг 0,2.
Порядок ввода: >> x=–4:0.2:4; >> y=sin(x); >> plot(x,y)
2. Построить график этой же функции штриховой линией фиолетового цвета, отметив точки ромбами.
Порядок ввода: >> x=–4:0.2:4; >> y=sin(x); >> plot(x,y,'dm--')
В результате каждого построения получатся графики, представленные на рис. 2.
Рис. 2. Графики функции y =sin x стандартного вида и с заданными параметрами
Пример
Построить в одной системе координат графики функций y =sin x и z =cos x на отрезке [–5; 5] с шагом 0,2.
Порядок ввода: >> x=–5:0.2:5; >> y=sin(x); >> z=cos(x); >> plot(x,y,'-.+r',x,z,'--ok')
В результате получатся графики, представленные на рис. 3. Здесь график первой функции строится штрихпунктирной линией с точками в виде знака «плюс» красного цвета, а график второй функции строится штриховой линией с кружками черного цвета. К сожалению, на черно-белых рисунках вместо разных цветов видны разные градации серого цвета.
Рис. 3. Графики функций y =sin x и z=cos x
Форматирование графиков
Для включения и выключения режима редактирования графика используются кнопки Show Plot Tools (Показать окно свойств графика) и Hide Plot Tools (Скрыть окно свойств графика) на панели инструментов в окне графика.
В нижней части окна редактирования находится панель для форматирования графика (Property Editor), которая имеет различный вид в зависимости от того, какой элемент графика выделен (рис. 4). Щелкнув по нужному элементу, можно изменить параметры форматирования данного элемента (толщина и цвет линии, тип и размеры маркеров, подписи и т.д.).
Рис. 4. Окно графика в режиме редактирования
Основные команды форматирования для разных элементов графика приведены в табл. 7.
Пример
Построить в одной системе координат графики функций y =sin x и z =sin3 x на отрезке [–6; 6] с шагом 0,1.
Порядок ввода: >> x=–6:0.1:6; >> y=sin(x); >> z=sin(x).^3; >> plot(x,y,x,z)
Полученный график отформатируем с помощью окна свойств графика (рис. 5). Таблица 7 ЛАБОРАТОРНАЯ РАБОТА № 3
I. Построить графики функций в одной системе координат, отформатировав их с помощью окна свойств графика по образцу: 1) f =ln x + x 2, x ∈[1; 7], шаг 0,4; 2) f = x 2, y =sin x, x ∈[–5; 5], шаг 0,5; 3) f =sin x 2 – cos x, y = x 2 – 3, x ∈[–4; 4], шаг 0,3; 4) f = sin x 2 + cos x, y = x 2 – 4, z = , x ∈[–4; 4], шаг 0,4.
II. Построить графики функций, заданных параметрически (по одной оси – x (t), по другой – y (t)): 1) x (t)= t ∙cos t, y (t)= t ∙sin t, t ∈[0; 10ð], шаг ð/10; 2) b =3, x (t)= b ∙cos3 t, y (t)= b ∙sin3 t, t ∈[0; 2ð], шаг ð/12; 3) a =4, x (t)= a ∙(t 2 – 1)/(t 2 + 1), y (t)= a ∙ t ∙(t 2 – 1)/(t 2 + 1), t ∈[–10; 10ð], шаг 0,5. III. Построить графики функций в одной системе координат и отформатировать их с помощью команд форматирования: 1) x (t)= t ∙cos t, y (t)= t ∙sin t, t ∈[0; 10ð], шаг ð/10; 2) f =ln| x +2,5|+1, х ∈[–5; 5], шаг 1;
СИСТЕМЫ УРАВНЕНИЙ
Решение систем линейных уравнений относится к самой массовой области применения матричных методов. Как известно, обычная система линейных уравнений имеет вид: а 11 x 1+ а 12 x 2+…+ а 1 n xn = b 1; а 21 x 1+ а 22 x 2+…+ а 2 n xn = b 2; ……….. an 1 x 1+ аn 2 x 2+…+ аnnxn = bn. Рассмотрим различные способы решения систем уравнений. ЛАБОРАТОРНАЯ РАБОТА № 4
I. Решить системы линейных уравнений матричным способом, методом Крамера и с помощью функции solve: 1.
2.
3.
4. II. Решить системы линейных уравнений матричным способом, методом Крамера, графическим способом и с помощью функции solve: 1.
2. 3.
4.
III. Решить системы нелинейных уравнений графическим способом и с помощью функции solve: 1.
2. 3.
4.
IV. Решить системы нелинейных уравнений с помощью функции solve: 1.
2. 3.
4.
РЕШЕНИЕ УРАВНЕНИЙ
Для решения уравнений вида f (x)=0 в MATLAB существует несколько способов.
Нахождение корней полинома
Если функция f (x) является полиномом (многочленом n -й степени), то найти корни уравнения f (x)=0 можно с помощью функции roots. Для этого нужно: 1. Задать вектор коэффициентов полинома (начиная со старшего). 2. Вычислить корни с помощью функции roots(вектор).
Пример
Найти корни полинома 2 x 2–3 x –1=0. Порядок ввода: >> a=[2 –3 –1]; >> x=roots(a)
В результате получим x 1=–0,2808, x 2=1,7808.
ЛАБОРАТОРНАЯ РАБОТА № 5
I. Решить уравнения графически и с помощью функции solve:
II. Решить уравнения графически, с помощью функции solve и с помощью функции roots:
КОНТРОЛЬНАЯ РАБОТА № 1
Вариант 1
I. Вычислить значения выражений при x =3, b =2,3: 1) 2) II. Вычислить значения функций на соответствующем отрезке: 1) 2) III. Выполнить операции над матрицами: . 1) 2 А + В –1; 2) А ∙ В Т; 3) | A |. IV. Построить в одной системе координат графики функций f = x 2 и y =sin x при x ∈[–5; 5] с шагом 0,5. Отформатировать графики по образцу. V. Решить уравнение VI. Найти корни полинома VII. Решить систему линейных уравнений VIII. Решить систему нелинейных уравнений
Вариант 2
I. Вычислить значения выражений при x =–3, b =2: 1) 2) II. Вычислить значения функций на соответствующем отрезке: 1) 2) III. Выполнить операции над матрицами: . 1) А –1+3 В; 2) А Т∙ В; 3) | В |. IV. Построить в одной системе координат графики функций f =sin x 2–cos x и y = x 2–3 при x ∈[–4;4] с шагом 0,3. Отформатировать графики по образцу. V. Решить уравнение VI. Найти корни полинома VII. Решить систему линейных уравнений VIII. Решить систему нелинейных уравнений
ЛАБОРАТОРНАЯ РАБОТА № 6
I. Построить цветные поверхности функции z =2 x sin x +3 y cos y на заданных отрезках и отформатировать их по образцу: 1) на отрезке [–2; 2], шаг 0,2; 2) на отрезке [–5; 5], шаг 0,5.
II. Построить с помощью соответствующих команд графики функции z = x 2+ y 2 на отрезке [–2; 2] с шагом 0,2. Отформатировать графики по образцу:
III. Построить цветные поверхности функций на отрезке [–4; 4] с шагом 0,2 и отформатировать их по образцу: 1) g = ; 2) ;
3), [–4; 4], шаг 0,2.
IV. Построить и отформатировать поверхность: , [–5; 5], шаг 0,5.
ВЫЧИСЛЕНИЕ ИНТЕГРАЛОВ
Численное интегрирование (историческое название: квадратура) – вычисление значения определённого интеграла (как правило, приближённое), основанное на том, что величина интеграла численно равна площади криволинейной трапеции, ограниченной осью абсцисс, графиком интегрируемой функции и отрезками прямых x = a и x = b, где a и b – пределы интегрирования (рис. 10). Для вычисления интегралов в MATLAB можно использовать функции: ● int(f,x) – вычисляет неопределенный интеграл; ● int(f,v,a,b) – вычисляет определенный интеграл, где f – подынтегральная функция, x – переменная интегрирования, a и b – пределы интегрирования.
Пример
Вычислить неопределенный интеграл.
Порядок ввода: >> syms x >> f=x^3; >> int(f,x)
В результате получим выражение 1/4*x^4.
Пример
Вычислить определенный интеграл.
Порядок ввода: >> syms x >> f=x^3; >> int(f,x,1,3)
В результате получим значение определенного интеграла 20. Если MATLAB не выводит сразу численное значение определенного интеграла, то используйте функцию vpa, например, >> vpa(int(f,x,1,3),3).
Для вычисления двойных, тройных и т.д. интегралов необходимо использовать функцию inf несколько раз.
Пример
Вычислить двойной интеграл.
Порядок ввода: >> syms x y >> f=2*x^3*y; >> int(int(f,x),y)
В результате получим выражение 1/4*x^4*y^2.
Пример
Вычислить двойной интеграл.
Порядок ввода: >> syms x y >> f=2*x^3*y; >> int(int(f,x,1,3),y, –1,2)
В результате получим 60.
ЛАБОРАТОРНАЯ РАБОТА № 7
I. Вычислить неопределенные интегралы:
II. Вычислить определенные интегралы:
III. Вычислить двойные интегралы:
IV. Вычислить тройные интегралы:
ВЫЧИСЛЕНИЕ ПРЕДЕЛОВ
Вычисление пределов от символьных выражений производится с помощью встроенной функции limit: ● limit(f) – вычисление предела функции f при стремлении аргумента функции к нулю; ● limit(f,a) – вычисление предела функции f при стремлении аргумента функции к числу a; ● limit(f,x,a,’left’) – вычисление предела функции f при стремлении переменной x к числу a слева; ● limit(f,x,a,’right’) – вычисление предела функции f при стремлении переменной х к числу a справа; ● limit(f,y,a) – вычисление предела функции нескольких переменных f при стремлении переменной y к числу a.
Примечание. Символ бесконечность () в MATLAB записывается как inf. Неопределенное значение в MATLAB записывается как NaN.
Пример
Вычислить
Порядок ввода: >> syms x >> y=sin(x)/x; >> limit(y)
В результате получим 1.
Пример
Вычислить .
Порядок ввода: >> syms x >> f=(2*x^3+3*x^2+1)/(x^2–2*x+3); >> vpa(limit(f,2),3)
В результате получим 9,67.
Пример
Вычислить
Порядок ввода: >> y=(1+1/x)^x; >> limit(y,inf)
В результате получим exp(1), т.е. число е.
Пример
Вычислить
Порядок ввода: >> y=1/x; >> limit(y,x,0,'left') В результате получим – inf, т.е. минус бесконечность.
Пример
Вычислить
Порядок ввода: >> y=1/x; >> limit(y,x,0,'right')
В результате получим inf, т.е. бесконечность.
Пример
Вычислить
Порядок ввода: >> syms x h >> y=(sin(x+h)–sin(x))/h; >> limit(y,h,0) % Вычисление предела по переменной h
В результате получим cos x.
ДИФФЕРЕНЦИРОВАНИЕ ФУНКЦИИ
Дифференцирование функций в MATLAB осуществляется с помощью функции diff. Для функций одной переменной: ● diff(f) – вычисляет первую производную функции f; ● diff(f,k) – вычисляет производную k -го порядка функции f. Для функций нескольких переменных: ● diff(f,х) – вычисляет первую производную функции f по переменной x; ● diff(f,x,k) – вычисляет производную k -го порядка функции f по переменной x.
Пример
Вычислить производную функции y=2x3–3x2+3. Порядок ввода: >> syms x >> y=2*x^3–3*x^2+3; >> diff(y)
В результате получим 6 х 2–6 х.
Пример
Найти производную функции y =sin(x + h) по переменной х.
Порядок ввода: >> syms x h >> y=sin(x+h); >> diff(y,х)
В результате получим cos(x + h).
Пример
Найти производную функции y = по переменной h.
Порядок ввода: >> syms x h >> y=sin(x+h)/x; >> diff(y,h)
В результате получим cos(x + h)/ x.
Пример
Найти вторую производную функции y =5/ х.
Порядок ввода: >> syms x >> diff(5/x,2)
В результате получим 10/ х 3.
Пример
Найти вторую производную функции y =3 x 3 h –2 h 2 x 2+3 по переменной х.
Порядок ввода: >> syms x h >> y=3*x^3*h–2*h^2*x^2+3 >> diff(y,x,2)
В результате получим 18 xh –4 h 2.
Пример
Найти третью производную функции y = по переменной h.
Порядок ввода: >> syms x h >> diff(3*h^2*log(x)+3*exp(h),h,3)
В результате получим 3 eh.
ЛАБОРАТОРНАЯ РАБОТА № 8
I. Вычислить пределы функций:
II. Вычислить производные функций:
III. Вычислить производные старших порядков:
ЛАБОРАТОРНАЯ РАБОТА № 9
I. Решить дифференциальные уравнения при заданном начальном условии и построить графики решения любых трех уравнений:
II. Решить дифференциальные уравнения старшего порядка при заданны
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2021-12-07; просмотров: 65; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.118.159 (0.653 с.) |