Матрица в excel

Матрица коэффициентов парной корреляции excel

Операции с массивами

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

Во втором — в нескольких одновременно.

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

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

Создание формулы

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

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

Координаты массива имеют вид адресов первой её ячейки и последней, разделенные двоеточием. Если диапазон двумерный, то первая и последняя ячейки расположены по диагонали друг от друга. Например, адрес одномерного массива может быть таким: A2:A7.

А пример адреса двумерного диапазона выглядит следующим образом: A2:D7.

  1. Чтобы рассчитать подобную формулу, нужно выделить на листе область, в которую будет выводиться результат, и ввести в строку формул выражение для вычисления.

Изменение содержимого массива

  1. Закройте информационное окно, нажав на кнопку «OK».

Но что делать, если действительно нужно удалить или изменить формулу массива? В этом случае следует выполнить нижеуказанные действия.

Для изменения формулы выделите курсором, зажав левую кнопку мыши, весь диапазон на листе, куда выводится результат

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

  1. Для удаления формулы массива нужно точно так же, как и в предыдущем случае, выделить курсором весь диапазон ячеек, в котором она находится. Затем нажать на кнопку Delete на клавиатуре.

Нахождение определителя матрицы

Это одно единственное число, которое находится для квадратной матрицы. Используемая функция – МОПРЕД.

Ставим курсор в любой ячейке открытого листа. Вводим формулу: =МОПРЕД(A1:D4).

Таким образом, мы произвели действия с матрицами с помощью встроенных возможностей Excel.

Вычислить значения корней сформированной системы уравнений двумя методами: обратной матрицы и методом Крамера.

Введем данные значения в ячейки А2:С4 – матрица А и ячейки D2:D4 – матрица В.

Решение системы уравнений методом Крамера

Решим систему методом Крамера, для этого найдем определитель матрицы. Найдем определители матриц, полученных заменой одного столбца на столбец b.

Найдем корни уравнения, для этого в ячейку В21 введем: =B16/$B$15, в ячейку В22 введем: = =B17/$B$15, в ячейку В23 введем: ==B18/$B$15.

m×n,n×m

3.1. Программирование. Язык VBA

Иногда стандартных возможностей Excel не хватает и приходится
добавлять свои собственные подпрограммы. Для этой цели служит специальный язык
программирования – Microsoft Visual Basic for Applications (VBA). С его помощью
можно создавать макросы – наборы команд, выполняющих определенную
последовательность действий, и функции – программы для специальных вычислений на
листе. Макросы – это способ автоматизации стандартных процедур. Однажды создав
макрос, его можно использовать для повтора рутинных действий. Обратиться к
макросу можно через меню Tools-Macro-Macros. Иногда
удобно бывает приписать макрос к новой кнопке на панели инструментов или на
листе.

Функции, созданные пользователем, вызываются также как и
стандартные, встроенные функции – через Formula Bar.

Для того, чтобы макросы и пользовательские функции были
доступны для применения, нужно установить соответствующий уровень
безопасности через меню Tools-Macro-Security
(Excel 2003)  


Рис.39 Выбор уровня безопасности в Excel 2003

В Excel 2007 установка уровня безопасности происходит
через Office Button-Excel
Options-Trust Center.  


Рис.40 Выбор уровня безопасности в Excel 2007

Если выбран уровень  Medium
(2003) или Disable all macros with notification
(2007), то при каждом входе в Excel система будет запрашивать разрешение
на использование макросов. Мы рекомендуем установить уровни так, как
показано на Рис. 39 или Рис. 4, но не пренебрегать надежным антивирусом
для проверки посторонних файлов Excel.

При начальной установке Excel 2007 возможности работы с
VBA сильно ограничены. Чтобы восстановить их нужно пройти по цепочке
Office Button– Excel Options–Popular и
включить опцию Show Developer Tab in the Ribbon.
 

2.7. Регрессия

Для построения используются
несколько стандартных функций листа.

TREND / ТЕНДЕНЦИЯ

Строит

y=b+m1x1+…+mJ xJ+e

Аппроксимирует известные значения вектора откликов
known_y’s для заданных значений матрицы предикторов
known_x’s и возвращает значения y,
для заданного массива new_x’s.  


Синтаксис 

TREND(known_y’s
)

Примечания 

  • Вектор
    known_y’s должен занимать один столбец,
    тогда каждый столбец матрицы массива known_x’s
    интерпретируется как отдельная переменная;

  • Если
    аргумент known_x’sопущен, то предполагается, что это вектор чисел {1;2;3;…}
    такого же размера, как и known_y’s;

  • Матрица
    новых значений new_x’sдолжна иметь столько же столбцов
    (переменных), как и матрица known_x’s;

  • Если
    аргумент new_x’sопущен, то предполагается, что он совпадает с
    массивом known_x’s.
    Результат является вектором, в котором число строк равно
    числу строк в массиве new_x’s.

Пример 
 


Рис.34 Функция
TREND

Функция TRENDявляется функцией
массива и ее ввод должен завершаться нажатием комбинации
CTRL+SHIFT+ENTER. 

LINEST /
ЛИНЕЙН

Дополняет функцию TREND и выводит некоторые
статистические значения, связанные с регрессией  

y=b+m1x1+…+mJ xJ+e


Синтаксис 

LINEST(known_y’s
)

 

Рис. 35 Таблица вывода функция LINEST

mJ, …,
m2, m1
и b – оценки регрессионных
коэффициентов;

sJ, …,
s2, s1
и sb
– стандартные ошибки для оценок регрессионных коэффициентов;

R2 –
коэффициент детерминации;

sy
стандартная ошибка оценки y;

F – F-статистика;

DoF – число степеней
свободы;

SSreg
регрессионная сумма квадратов;

SSres
остаточная сумма квадратов.

Примечания 

  • LINEST – это
    очень плохо сконструированная функция, очень неудобная в
    практическом применении;

  • Примечания,
    представленные в описании функции полностью применимы к
    функции LINEST.

Пример 
 


Рис.36 Функция
LINEST

Функция LINEST является функцией массива и ее ввод должен
завершаться нажатием комбинации CTRL+SHIFT+ENTER. 

3.5. Надстройки

Написанные пользователем программы хранятся в той книге
Excel, в которой они были созданы, в ее специальных разделах, называемых
модулями. Для того чтобы эти макросы были доступны в других
книгах, их можно туда скопировать, но можно поступить и по-другому –
создать надстройку.

Надстройка – это специальный файл Excel,
содержащий в  себе несколько VBA модулей, связанных со всеми
необходимыми библиотеками DLL. Надстройку можно подключить к системе
Excel для расширения ее возможностей.

Стандартная версия Excel включает несколько надстроек,
среди которых для нас примечательны две: Solver Add-In и Analysis
Toolpak.

Надстройка

Solver Add-In предназначена для оптимизации значения в целевой
ячейке. Решение находится с помощью поиска величин в других ячейках,
функционально связанных с целевой.

Надстройка

Analysis Toolpak содержит набор статистических инструментов
для анализа данных

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

J-Walk Chart Tools Add-In – бесплатная утилита для
управление диаграммами: добавление подписей, ярлыков, и т.п. – все то,
что отсутствует в стандартной версии.

XLStat
– большой (и дорогой) пакет статистического анализа, включающий, в
частности, и PLS регрессию.

Multivariate Analysis Add-in – условно бесплатный пакет для
анализа многомерных данных, созданный в Бристольском университете

Fitter – надстройка для нелинейного регрессионного анализа.

Chemometrics – пакет функций листа, выполняющий анализ
многомерных данных.

Подробнее о надстройках можно прочитать

здесь. 

Выполнение расчетов

Вычисление обратной матрицы в Excel возможно только в том случае, если первичная матрица является квадратной, то есть количество строк и столбцов в ней совпадает. Кроме того, её определитель не должен быть равен нулю. Для вычисления применяется функция массива МОБР. Давайте на простейшем примере рассмотрим подобное вычисление.

Расчет определителя

Прежде всего, вычислим определитель, чтобы понять, имеет первичный диапазон обратную матрицу или нет. Это значение рассчитывается при помощи функции МОПРЕД.

  1. Выделяем любую пустую ячейку на листе, куда будут выводиться результаты вычислений. Жмем на кнопку «Вставить функцию», размещенную около строки формул.
  2. Запускается Мастер функций. В перечне записей, который он представляет, ищем «МОПРЕД», выделяем этот элемент и жмем на кнопку «OK».
  3. Открывается окно аргументов. Ставим курсор в поле «Массив». Выделяем весь диапазон ячеек, в котором расположена матрица. После того, как его адрес появился в поле, жмем на кнопку «OK».
  4. Программа производит расчет определителя. Как видим, для нашего конкретного случая он равен – 59, то есть не тождественен нулю. Это позволяет сказать, что у данной матрицы существует обратная.

Расчет обратной матрицы

Теперь можно преступить к непосредственному расчету обратной матрицы.

  1. Выделяем ячейку, которая должна стать верхней левой ячейкой обратной матрицы. Переходим в Мастер функций, кликнув по значку слева от строки формул.
  2. В открывшемся списке выбираем функцию МОБР. Жмем на кнопку «OK».
  3. В поле «Массив», открывшегося окна аргументов функции, устанавливаем курсор. Выделяем весь первичный диапазон. После появления его адреса в поле, жмем на кнопку «OK».
  4. Как видим, появилось значение только в одной ячейке, в которой была формула. Но нам нужна полноценная обратная функция, поэтому следует скопировать формулу в другие ячейки. Выделяем диапазон, равнозначный по горизонтали и вертикали исходному массиву данных. Жмем на функциональную клавишу F2, а затем набираем комбинацию Ctrl+Shift+Enter. Именно последняя комбинация предназначена для обработки массивов.
  5. Как видим, после этих действий обратная матрица вычислена в выделенных ячейках.

На этом расчет можно считать завершенным.

Если вы производите расчет определителя и обратной матрицы только при помощи ручки и бумаги, то над этим вычислением, в случае работы над сложным примером, можно ломать голову очень долго. Но, как видим, в программе Эксель данные вычисления производятся очень быстро, независимо от сложности поставленной задачи. Для человека, который знаком с алгоритмом подобных расчетов в этом приложении, все вычисление сводится к чисто механическим действиям.

Мы рады, что смогли помочь Вам в решении проблемы.

Помогла ли вам эта статья?

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

Прежде всего, уясним одно правило:  Матрица имеет обратную только тогда, когда ее определитель не равен нулю.  А вот и задание: найдите матрицу, обратную к матрице А, где

Вычислять определитель этой матрицы мы умеем. Я его уже вычислил.

Он оказался равен -4, а  это значит, что у нашей матрицы есть обратная (если бы определитель оказался равен нулю, то мы сказали бы что матрица не имеет обратную и немедленно прекратили все вычисления). Теперь отметим ячейку, с которой начнем записывать ответ. Я отметил ячейку E1.  Нажимаем Формулы, затем Математические и в появившемся окне находим  МОБР

После нажатия появляется вот такое окно, в котором надо вписать адреса ячеек, в которых находятся элементы матрицы  в Массив

У нас элементы записаны в ячейки начиная с А1 и заканчивая в С3 , поэтому так и записываем (смотрите картинку)

Если все сделали правильно, то автоматически заполнится место, обведенное красным и запишется ответ, который обведен черным. В таком виде ответ трудно переваривать и поэтому нажимаем ОК.  В ячейке, которую мы застолбили под ответ, появилось число 3,  Это только первый элемент полученной обратной матрицы.

Чтобы виден был весь ответ, выполняем следующие действия: Начиная с  ячейки Е1 выделяем три строчки и три столбца (именно столько было у исходной матрицы и столько же будет у обратной)

нажимаем клавишу F2,  а затем на одновременно на три клавиши  Ctrl+Shift+Enter.

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

На этом все. Крепких вам знаний.

Рубрика: EXCEL в помощь, Статьи. Метки: EXCEL, ИКТ, матрица, обратная матрица

Метод Гаусса

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

  • действия, когда в системе переставляются местами два уравнения;
  • произведение одного из уравнений в системе на действительное ненулевое число;
  • сложение первого уравнения со вторым, при этом последнее умножено на произвольное число.

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

Следует переписать эту систему в матричный вид:

В этом примере rang (A) = p. Способ эквивалентных преобразований не изменяет ранг таблицы коэффициентов.

Метод Гаусса предназначен для приведения матричной таблицы коэффициентов А к ступенчатому или диагональному виду. Расширенная система выглядит так:

Допустим, а11 не равен 0. В противном случае, если это не так, то меняют эту строку с другой, где в первом столбце находится элемент, отличный от нуля. Когда подобные строчки отсутствуют, переходят к другому столбцу. Все нижние элементы столбца после а11 обнуляют. Для этих целей выполняют операции сложения строк 2,3…m с первой строчкой, умноженной на а21/а11, -а31/а11….- аm1/a11. В результате система примет вид:

На втором шаге повторяют все действия с элементами столбца 2, которые расположены ниже а22. Если показатель равен нулю, строку также меняют местами со строчкой, лежащей ниже с ненулевым элементом во втором столбце. Затем обнулению подлежат все показатели ниже а22. Для этого складывают строки 2,3 ..m, как описано выше. Выполняя процедуру со всеми элементами, приходят к матричной таблице ступенчатого или диагонального вида. Полученная расширенная таблица будет выглядеть:

Обращают внимание на последние строки

В этом случае система уравнений имеет решение, но когда хотя бы одно из этих чисел отличается от нуля, она несовместима. Таким образом, система совместима, если ранг таблицы А равен расширенному рангу В (А|b).

Если rang А=rang (A|b), то существует множество решений, где n-p — многообразие. Из этого следует n-p неизвестных Хр+1,…Xn выбираются произвольно. Неизвестные X1, X2,…Xp вычисляют следующим образом: из последнего уравнения выражают Хр через остальные переменные, вставляя в предыдущие выражения. Затем из предпоследнего уравнения получают Хр-1 через прочие переменные и подставляют их в предыдущие выражения. Процедуру повторяют.

Найти быстро ответ и проверить себя позволяет онлайн-калькулятор. Решение матрицы методом Гаусса с помощью такого расчёта показывает подробные этапы операций. Для нахождения достаточно указать количество переменных и уравнений, отметить в полях значения чисел и нажать кнопку «Вычислить».

Сложение и вычитание матриц в Excel

Способ 1

Следует отметить, что складывать и вычитать можно матрицы одинаковой размерности (одинаковое количество строк и столбцов у каждой из матриц). Причем каждый элемент результирующей матрицы С
будет равен сумме соответствующих элементов матриц А
и В
, т.е. с ij
= а ij
+ b
ij
.

Рассмотрим матрицы А
и В
размерностью 3х4
. Вычислим сумму этих матриц. Для этого в ячейку N
3
введем формулу =B3+H3
, где B3
и H3
— первые элементы матриц А
и В
соответственно. При этом формула содержит относительные ссылки (В3
и H
3
), чтобы при копировании формулы на весь диапазон матрицы С
они могли измениться.

С помощью маркера автозаполнения скопируем формулу из ячейки N
3
вниз и вправо на весь диапазон матрицы С
.

Для вычитания матрицы В
из матрицы А
(С=А — В
) в ячейку N
3
введем формулу =B3 — H3
и скопируем её на весь диапазон матрицы С
.

Способ 2

Этот способ отличается тем, что результат сложения/вычитания матриц сам является массивом. В этом случае нельзя удалить элемент массива.

Для деления матрицы на число этим способом выделяем диапазон, в котором будет вычислен результат, вводим знак «=», выделяем диапазон, содержащий первую матрицу А
, нажимаем на клавиатуре знак сложения (+) и выделяем вторую матрицу В
. После ввода формулы нажимаем сочетание клавиш Ctrl+
Shift+
Enter
, чтобы значениями заполнился весь диапазон.

Умножение матриц в Excel

Следует отметить, что умножать матрицы можно только в том случае, если количество столбцов первой матрицы А равно количеству строк второй матрицы В.

Рассмотрим матрицы А размерностью 3х4 и В размерностью 4х2. При умножении этих матриц получится матрица С размерностью 3х2.

Вычислим произведение этих матриц С=А*В с помощью встроенной функции =МУМНОЖ(). Для этого выделим диапазон L3:M5 — в нём будут располагаться элементы матрицы С, полученной в результате умножения. На вкладке Формулы выберем Вставить функцию.

В диалоговом окне Вставка функции выберем Категория Математические — функция МУМНОЖ — ОК.

В диалоговом окне Аргументы функции выберем диапазоны, содержащие матрицы А и В. Для этого напротив массива1 щёлкнем по красной стрелке.

Выделим диапазон, содержащий элементы матрицы А (имя диапазона появится в строке аргументов), и щелкнем по красной стрелке.

Для массива2 выполним те же действия. Щёлкнем по стрелке напротив массива2.

Выделим диапазон, содержащий элементы матрицы В, и щелкнем по красной стрелке.

В диалоговом окне рядом со строками ввода диапазонов матриц появятся элементы матриц, а внизу — элементы матрицы С. После ввода значений нажимаем на клавиатуре сочетание клавиш Shift+Ctrl и щелкаем левой кнопкой мыши по кнопке ОК.

ВАЖНО. Если просто нажать ОК, то программа вычислит значение только первой ячейки диапазона матрицы С

Мы получим результат умножения матриц А и В.

Мы можем изменить значения ячеек матриц А и В, значения матрицы С поменяются автоматически.

В чем заключается метод Крамера

Суть метода Крамера в следующем:

  1. Чтобы найти решение системы методом Крамера, первым делом вычисляем главный определитель матрицы $D$. Когда вычисленный детерминант основной матрицы при подсчёте методом Крамера оказался равен нулю, то система не имеет ни одного решения или имеет нескончаемое количество решений. В этом случае для нахождения общего или какого-либо базисного ответа для системы рекомендуется применить метод Гаусса.
  2. Затем нужно заменить крайний столбец главной матрицы на столбец свободных членов и высчитать определитель $D_1$.
  3. Повторить то же самое для всех столбцов, получив определители от $D_1$ до $D_n$, где $n$ — номер крайнего справа столбца.
  4. После того как найдены все детерминанты $D_1$…$D_n$, можно высчитать неизвестные переменные по формуле $x_i = \frac{D_i}{D}$.

Способ Крамера

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

Её необходимо заменить равноценным матричным уравнением.

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

В итоге получают выражения:

Из представленных уравнений выделяют формулы Крамера:

Метод Крамера не представляет сложности. Он может быть описан следующим алгоритмом:

  1. Высчитывают определитель дельта базовой матрицы.
  2. В матричной таблице А замещают первый столбец на вектор свободных элементов b.
  3. Выполняют расчёт определителя дельта1 выявленной матрицы А1.
  4. Определяют переменную Х1 = дельта1/дельта.
  5. Повторяют шаги со 2 по 4 пункт в матрице А для столбов 2,3…n.

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

Что можно делать с матрицами

В целом, есть огромное количество действий, применение которых возможно для матриц. Давайте каждое из них рассмотрим более подробно.

Транспонирование

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

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

Далее есть несколько методов, как можно осуществить транспонирование.

Первый способ следующий. Для начала нужно выделить матрицу, после чего скопировать ее. Далее выделяется диапазон ячеек, куда должен быть вставлен транспонированный диапазон. Далее открывается окно «Специальная вставка».

Там есть множество операций, но нам нужно найти радиокнопку «Транспонировать». После совершения этого действия нужно подтвердить его нажатием клавиши ОК.

Есть еще один способ, с помощью которого можно транспонировать матрицу. Сперва надо выделить ячейку, расположенную в верхнем левом углу диапазона, отведенного под транспонированную матрицу. Далее открывается диалоговое окно с функциями, где есть функция ТРАНСП . Ниже в примере вы более подробно узнаете, как это сделать. В качестве параметра функции используется диапазон, соответствующий изначальной матрице.

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

  1. Выделить набор ячеек, отведенных под транспонированную матрицу.
  2. Нажать клавишу F2.
  3. Нажать на горячие клавиши Ctrl + Shift + Enter.

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

Сложение и вычитание матриц в Excel

Способ 1

Следует отметить, что складывать и вычитать можно матрицы одинаковой размерности (одинаковое количество строк и столбцов у каждой из матриц). Причем каждый элемент результирующей матрицы С
будет равен сумме соответствующих элементов матриц А
и В
, т.е. с ij
= а ij
+ b
ij
.

Рассмотрим матрицы А
и В
размерностью 3х4
. Вычислим сумму этих матриц. Для этого в ячейку N
3
введем формулу =B3+H3
, где B3
и H3
— первые элементы матриц А
и В
соответственно. При этом формула содержит относительные ссылки (В3
и H
3
), чтобы при копировании формулы на весь диапазон матрицы С
они могли измениться.

С помощью маркера автозаполнения скопируем формулу из ячейки N
3
вниз и вправо на весь диапазон матрицы С
.

Для вычитания матрицы В
из матрицы А
(С=А — В
) в ячейку N
3
введем формулу =B3 — H3
и скопируем её на весь диапазон матрицы С
.

Способ 2

Этот способ отличается тем, что результат сложения/вычитания матриц сам является массивом. В этом случае нельзя удалить элемент массива.

Для деления матрицы на число этим способом выделяем диапазон, в котором будет вычислен результат, вводим знак «=», выделяем диапазон, содержащий первую матрицу А
, нажимаем на клавиатуре знак сложения (+) и выделяем вторую матрицу В
. После ввода формулы нажимаем сочетание клавиш Ctrl+
Shift+
Enter
, чтобы значениями заполнился весь диапазон.

Понравилась статья? Поделиться с друзьями:
Самоучитель Брин Гвелл
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: