{
    "version": "https:\/\/jsonfeed.org\/version\/1",
    "title": "Математик среди биологов: заметки с тегом богемные матрицы",
    "_rss_description": "Я немного умею складывать, но от вычитания у меня всегда кружится голова",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/antonlyakh.ru\/blog\/tags\/bogemnye-matricy\/",
    "feed_url": "https:\/\/antonlyakh.ru\/blog\/tags\/bogemnye-matricy\/json\/",
    "icon": false,
    "author": {
        "name": "Антон Лях",
        "url": "https:\/\/antonlyakh.ru\/blog\/",
        "avatar": false
    },
    "items": [
        {
            "id": "496",
            "url": "https:\/\/antonlyakh.ru\/blog\/all\/nedostatok-vychisleniya-opredelitelya-celoischislennyh-matric-na\/",
            "title": "Недостаток вычисления определителя целоисчисленных матриц на Питоне",
            "content_html": "<p><i>Целоисчисленная матрица<\/i> — это матрица, все элементы которой являются целыми числами.<\/p>\n<p>Определитель целоисчисленной матрицы — тоже целое число. (Очевидно же.)<\/p>\n<p>Используем класс целоисчисленных матриц, элементы которых могут принимать только значения из заданного множества целых чисел. (Такие матрицы называют <i>богемными.<\/i>)<\/p>\n<p>Очевидно, что если множество возможных элементов матриц конечно, то и число возможных богемных матриц заданного размера тоже конечно.<\/p>\n<p>Пусть мы ищем среди всех богемных матриц только те, определитель которых равен нулю. Ищем при помощи кода на Питоне. Определитель матрицы вычисляем так:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">dt = np.linalg.det( a )<\/code><\/pre><p>И вот тут возможна ошибка.<\/p>\n<p>Если мы будем выбирать матрицы по условию <kbd>dt==0<\/kbd>, то получим неверный результат.<\/p>\n<blockquote>\n<p>Using that test (dt==0) Python got the right number of [...] matrices when mdim=2 or mdim=3, but the test dt==0 failed a few times when mdim=4, and (after a long time computing) reported 15,015,617 singular matrices; the true number is 15,099,201. This is because <kbd>np.linalg.det<\/kbd> is <i>computing the determinant from a numerical factoring<\/i> (which introduces rational numbers and rounding error) and the roundoff error means that sometimes a zero determinant was not being reported as precisely zero.<\/p>\n<\/blockquote>\n<p>Правильный результат получится если мы используем условие <kbd>dt&lt;0.5<\/kbd>.<\/p>\n<p><a href=\"https:\/\/computational-discovery-on-jupyter.github.io\/Computational-Discovery-on-Jupyter\/Contents\/bohemian-matrices.html#table-of-results\">https:\/\/computational-discovery-on-jupyter.github.io\/Computational-Discovery-on-Jupyter\/Contents\/bohemian-matrices.html#table-of-results<\/a><\/p>\n",
            "date_published": "2024-06-28T22:13:50+03:00",
            "date_modified": "2024-06-28T22:13:11+03:00",
            "_date_published_rfc2822": "Fri, 28 Jun 2024 22:13:50 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "496",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css",
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": []
            }
        }
    ],
    "_e2_version": 3559,
    "_e2_ua_string": "E2 (v3559; Aegea)"
}