Решатель матричных уравнений Python Ru Python спросил
Изменено 4 года, 11 месяцев назад
Просмотрено 1к раз
Вот проблема: я пытаюсь решить матричное уравнение второго порядка вида:
Где X (найти) и C (известно) имеют размеры [nxn]. (n порядка 1000). C — известная симметричная ковариационная матрица. (и X тоже должен быть симметричным)
Вот мой код:
из sympy importsolve из импорта sympy Indexed, IndexedBase, Tuple импортировать numpy как np X = IndexedBase('X',shape=(n,n)) eqs = Кортеж (np.dot (X, X) -np.dot (C, X) -np.eye (n)) решить (уравнения, X)
Правильно ли это сделать? Мой код занимает много времени.
Я ищу любой тип алгоритма, который мог бы помочь мне эффективно решить такое уравнение.
- питон
- матрица
- sympy
- уравнение
4 9(1/2) //вычесть E с обеих сторон
Матрица квадратного корня может быть, а может и не быть тем, что вы хотите решить символически. SymPy, безусловно, позволит вам представить его символически, но пока что в моих попытках (в Python3 на MinGW64) оказалось, что он не может вычислить его численно.
Ваша матрица C симметрична, поэтому мы можем проверить, имеет ли член под квадратным корнем (т.е. степень 1/2
) явную формулу вычисления. Несколько предварительных фактов:
Согласно Википедии (симметричная матрица): 92 + I) симметричен.
Таким образом, можно использовать квадратный корень через диагонализацию (4) выше. А квадратный корень диагональной матрицы вычисляется путем извлечения квадратного корня из элементов по диагонали. Здесь вы можете столкнуться с другой проблемой, что если эти элементы отрицательные, ваш ответ будет сложным.
Ваш код неверен. NumPy предназначен для числовых вычислений, он не будет создавать объект SymPy, представляющий левую часть вашего уравнения. И это не поможет вам получить аналитическое решение. Вот пример решения матричной системы с помощью SymPy; это 2 на 2, а не 1000 на 1000.
import sympy as sym X = sym.Matrix(sym.MatrixSymbol('X', 2, 2)) covar = sym.Matrix([[2, 1], [1, 3]]) sym.solve([X**2 - covar*X - sym.eye(2), X-X.T], X)
Обратите внимание, что умножение матриц SymPy равно *
. Первое уравнение — это то, что вы написали, второе требует, чтобы X был симметричным (
— это транспонирование X).
Однако уже 3 на 3 дело проблематично, а 1000 на 1000 совсем безнадежно. Нельзя просто решить систему из 500 000 нелинейных уравнений, бросив ее в SymPy.
Вы можете попробовать многовариантные решатели SciPy, чтобы получить несколько численных решений, но это будет только одно численное решение из многих. Правильный подход к матричным уравнениям типа X**2 - C*X - I = 0
— не кидать их в комп; это делать математику.
4
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Обязательно, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
404 — СТРАНИЦА НЕ НАЙДЕНА
Почему я вижу эту страницу?
404 означает, что файл не найден. Если вы уже загрузили файл, имя может быть написано с ошибкой или файл находится в другой папке.
Вы можете получить ошибку 404 для изображений, поскольку у вас включена защита от горячих ссылок, а домен отсутствует в списке авторизованных доменов.
Если вы перейдете по временному URL-адресу (http://ip/~username/) и получите эту ошибку, возможно, проблема связана с набором правил, хранящимся в файле .htaccess. Вы можете попробовать переименовать этот файл в .htaccess-backup и обновить сайт, чтобы посмотреть, решит ли это проблему.
Также возможно, что вы непреднамеренно удалили корневой каталог документов или вам может потребоваться повторное создание вашей учетной записи. В любом случае, пожалуйста, немедленно свяжитесь с вашим веб-хостингом.
Вы используете WordPress? См. Раздел об ошибках 404 после перехода по ссылке в WordPress.
Как найти правильное написание и папку
Отсутствующие или поврежденные файлы Когда вы получаете ошибку 404, обязательно проверьте URL-адрес, который вы пытаетесь использовать в своем браузере. Это сообщает серверу, какой ресурс он должен использовать попытка запроса.
http://example.com/example/Example/help.html
В этом примере файл должен находиться в public_html/example/Example/
Обратите внимание, что в этом примере важен CaSe . На платформах с учетом регистра e xample и E xample не совпадают.
Для дополнительных доменов файл должен находиться в папке public_html/addondomain.com/example/Example/, а имена чувствительны к регистру.
Неработающее изображениеЕсли на вашем сайте отсутствует изображение, вы можете увидеть на своей странице поле с красным размером X , где отсутствует изображение. Щелкните правой кнопкой мыши на X и выберите «Свойства». Свойства сообщат вам путь и имя файла, который не может быть найден.
Это зависит от браузера. Если вы не видите на своей странице поле с красным X , попробуйте щелкнуть правой кнопкой мыши страницу, затем выберите «Просмотр информации о странице» и перейдите на вкладку «Мультимедиа».
http://example.com/cgi-sys/images/banner.PNG
В этом примере файл изображения должен находиться в папке public_html/cgi-sys/images/
Обратите внимание, что в этом пример. На платформах, которые обеспечивают чувствительность к регистру PNG и png — это не одно и то же место.
Ошибки 404 после перехода по ссылкам WordPress
При работе с WordPress ошибки 404 Page Not Found часто могут возникать, когда была активирована новая тема или когда были изменены правила перезаписи в файле .htaccess.
Когда вы сталкиваетесь с ошибкой 404 в WordPress, у вас есть два варианта ее исправления.
Вариант 1. Исправьте постоянные ссылки- Войдите в WordPress.
- В меню навигации слева в WordPress нажмите Настройки > Постоянные ссылки (Обратите внимание на текущую настройку. Если вы используете настраиваемую структуру, скопируйте или сохраните ее где-нибудь.
)
- Выберите По умолчанию
- Нажмите Сохранить настройки .
- Верните настройки к предыдущей конфигурации (до того, как вы выбрали «По умолчанию»). Верните пользовательскую структуру, если она у вас была.
- Нажмите Сохранить настройки .
Во многих случаях это сбросит постоянные ссылки и устранит проблему. Если это не сработает, вам может потребоваться отредактировать файл .htaccess напрямую.
Вариант 2. Измените файл .htaccessДобавьте следующий фрагмент кода в начало файла .htaccess:
# НАЧАЛО WordPress
RewriteEngine On
RewriteBase / 9index.php$ — [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# Конец WordPress
Если ваш блог показывает неправильное доменное имя в ссылках, перенаправляет на другой сайт или отсутствуют изображения и стиль, все это обычно связано с одной и той же проблемой: в вашем блоге WordPress настроено неправильное доменное имя.
Как изменить файл .htaccess
Файл .htaccess содержит директивы (инструкции), которые сообщают серверу, как вести себя в определенных сценариях, и напрямую влияют на работу вашего веб-сайта.
Перенаправление и перезапись URL-адресов — это две очень распространенные директивы, которые можно найти в файле .htaccess, и многие скрипты, такие как WordPress, Drupal, Joomla и Magento, добавляют директивы в .htaccess, чтобы эти скрипты могли работать.
Возможно, вам потребуется отредактировать файл .htaccess в какой-то момент по разным причинам. В этом разделе рассказывается, как редактировать файл в cPanel, но не о том, что нужно изменить. статьи и ресурсы для этой информации.)
Существует множество способов редактирования файла .htaccess- Отредактируйте файл на своем компьютере и загрузите его на сервер через FTP
- Использовать режим редактирования программы FTP
- Используйте SSH и текстовый редактор
- Используйте файловый менеджер в cPanel
Самый простой способ отредактировать файл . htaccess для большинства людей — через диспетчер файлов в cPanel.
Прежде чем что-либо делать, рекомендуется сделать резервную копию вашего веб-сайта, чтобы вы могли вернуться к предыдущей версии, если что-то пойдет не так.
Откройте файловый менеджер- Войдите в cPanel.
- В разделе «Файлы» щелкните значок File Manager .
- Установите флажок для Корень документа для и выберите доменное имя, к которому вы хотите получить доступ, из раскрывающегося меню.
- Убедитесь, что установлен флажок Показать скрытые файлы (точечные файлы) «.
- Нажмите Перейти . Файловый менеджер откроется в новой вкладке или окне.
- Найдите файл .htaccess в списке файлов. Возможно, вам придется прокрутить, чтобы найти его.
- Щелкните правой кнопкой мыши файл .