Домашнее задание

Домашнее задание#

Упражнение 1 - Numpy

  1. Пусть у двух матриц совпадает количество строк. Объедините их в одну горизонтально (объедините столбцы этих матриц)

  2. Пусть дана пuтру-матрица \(M\) и два массива индексов \(a, b\) одинаковой длины. Постройте массив элементов \(M[a[0], b[0]], M[a[1], b[1]], \ldots\) Указание: для выполнения этой операции не требуется никаких именных функций.

  3. Подсчитайте след матрицы и количество ненулевых элементов на ее диагонали

  4. Даны два произвольных numpy-массива одинаковой размерности \((n, m)\). Замените нулями те элементы второго массива, для которых на соответствующем месте в первом массиве находятся отрицательные числа

  5. Даны две матрицы с одинаковым количеством строк и количеством столбцов \(n\) и \(m\) соответственно. Постройте матрицу \(m \times m\) всевозможных произведений столбцов друг на друга (в смысле скалярного произведения).

Упражнение 2 - Matplotlib

  1. Постройте таблицу \(2 \times 2\) из четырех графиков (см. функцию plt.subplots)

  2. Постройте график с крестами ошибок

  3. Постройте график в логарифмическом масштабе без явного вычисления логарифмов

Упражнение 3 - Погрешности

  1. Оценить погрешность в определении корней уравнения \(a y^3+d=0\), если величины \(a=1\) и \(d=8\) заданы с точностью \(\Delta(a)=10^{-3}\) и \(\Delta(d)=10^{-3}\).

  2. Определить оптимальный шаг численного дифференцирования \(h_{\text{opt}}\) при использовании для вычисления производной приближенной формулы

\[ u^{\prime}(x) \approx \frac{u(x-2 h)-8 u(x-h)+8 u(x+h)-u(x+2 h)}{12 h}, \]

Какой порядок аппроксимации имеет эта формула? Известно, что, \(\left|u^{(5)}(t)\right| \leq M_5\), а значения функций вычисляются с точностью \(\Delta u\).

Упражнение 4 - Погрешность определения корня уравнения

С каким числом верных знаков (или относительной погрешностью) должен быть известен свободный член в уравнении \(x^2-2 x+0.999993751=0\), чтобы корни имели четыре верных знака?

Упражнение 5 - Рост погрешности в последовательности

Пусть задана последовательность чисел \(x_n, n=0,1,2, \ldots\), причем \(5 x_{n+1}-x_n=4\), а \(x_0\) известно с относительной погрешностью \(10^{-6}\). При каких значениях \(x_0\) относительная погрешность при вычислении \(x_n\) будет быстро возрастать с ростом \(n\) ?

Упражнение 6* - Вигнеровский полукруг

  1. Сгенерируйте случайную матрицу \(N \times N\), в которой каждый элемент взят из гауссова нормального распределения с фиксированными параметрами. Сделайте из этой матрицы симметричную, добавив к ней ее транспонированную. Постройте гистограмму собственных значений получившейся матрицы (подберите достаточно большое \(N\) и удачное количество бинов). Повторите эксперимент \(M\) раз ( \(M \sim 50\), здесь цикл разрешается) и отобразите разброс высоты каждого бина гистограммы с помощью креста ошибок.

  2. (Wigner surmise) Постройте гистограмму расстояний \(\rho\) между ближайшими собственными числами матрицы. Для этого для случайной симметричной матрицы отсортируйте ее собственные числа \(\lambda_i\) и посчитайте все \(\rho_i=\lambda_{i+1}-\lambda_i\). Для улучшения качества можно повторить эксперимент \(m\) раз и объединить все наборы \(\left\{\rho_i\right\}\).

  3. Случайная величина \(\rho\) из предыдущего пункта имеет плотность вероятности \(f(\rho)\). Построенная в п. 2 гистограмма должна приближаться к функции \(f(\rho)\) при больших \(N\) и \(m\). Пользуясь гистограммой, определите поведение (асимптотику) \(f(\rho)\) на маленьких и больших \(\rho\). На основании этого предложите вид функциональной зависимости, который может приблизить \(f(\rho)\). Достаточно предложить функцию \(\tilde{f}_{c_1, c_2, \ldots}(\rho)\), где \(c_1, c_2, \ldots\) некоторое (небольшое) количество параметров, так что \(\tilde{f}(\rho)\) неплохо приближает гистограмму при некоторых \(c_i\).

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