<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Математик среди биологов: заметки с тегом богемные матрицы</title>
<link>https://antonlyakh.ru/blog/tags/bogemnye-matricy/</link>
<description>Я немного умею складывать, но от вычитания у меня всегда кружится голова</description>
<author>Антон Лях</author>
<language>ru</language>
<generator>E2 (v3559; Aegea)</generator>

<itunes:owner>
<itunes:name>Антон Лях</itunes:name>
<itunes:email></itunes:email>
</itunes:owner>
<itunes:subtitle>Я немного умею складывать, но от вычитания у меня всегда кружится голова</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Недостаток вычисления определителя целоисчисленных матриц на Питоне</title>
<guid isPermaLink="false">496</guid>
<link>https://antonlyakh.ru/blog/all/nedostatok-vychisleniya-opredelitelya-celoischislennyh-matric-na/</link>
<pubDate>Fri, 28 Jun 2024 22:13:50 +0300</pubDate>
<author>Антон Лях</author>
<comments>https://antonlyakh.ru/blog/all/nedostatok-vychisleniya-opredelitelya-celoischislennyh-matric-na/</comments>
<description>
&lt;p&gt;&lt;i&gt;Целоисчисленная матрица&lt;/i&gt; — это матрица, все элементы которой являются целыми числами.&lt;/p&gt;
&lt;p&gt;Определитель целоисчисленной матрицы — тоже целое число. (Очевидно же.)&lt;/p&gt;
&lt;p&gt;Используем класс целоисчисленных матриц, элементы которых могут принимать только значения из заданного множества целых чисел. (Такие матрицы называют &lt;i&gt;богемными.&lt;/i&gt;)&lt;/p&gt;
&lt;p&gt;Очевидно, что если множество возможных элементов матриц конечно, то и число возможных богемных матриц заданного размера тоже конечно.&lt;/p&gt;
&lt;p&gt;Пусть мы ищем среди всех богемных матриц только те, определитель которых равен нулю. Ищем при помощи кода на Питоне. Определитель матрицы вычисляем так:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;dt = np.linalg.det( a )&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;И вот тут возможна ошибка.&lt;/p&gt;
&lt;p&gt;Если мы будем выбирать матрицы по условию &lt;kbd&gt;dt==0&lt;/kbd&gt;, то получим неверный результат.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;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 &lt;kbd&gt;np.linalg.det&lt;/kbd&gt; is &lt;i&gt;computing the determinant from a numerical factoring&lt;/i&gt; (which introduces rational numbers and rounding error) and the roundoff error means that sometimes a zero determinant was not being reported as precisely zero.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Правильный результат получится если мы используем условие &lt;kbd&gt;dt&amp;lt;0.5&lt;/kbd&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://computational-discovery-on-jupyter.github.io/Computational-Discovery-on-Jupyter/Contents/bohemian-matrices.html#table-of-results"&gt;https://computational-discovery-on-jupyter.github.io/Computational-Discovery-on-Jupyter/Contents/bohemian-matrices.html#table-of-results&lt;/a&gt;&lt;/p&gt;
</description>
</item>


</channel>
</rss>