updated text
This commit is contained in:
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -1005,20 +1005,30 @@ values and the column vectors of <span class="math notranslate nohighlight">\(\b
|
||||
<div class="section" id="code-for-svd-and-inversion-of-matrices">
|
||||
<h2>Code for SVD and Inversion of Matrices<a class="headerlink" href="#code-for-svd-and-inversion-of-matrices" title="Permalink to this headline">¶</a></h2>
|
||||
<p>How do we use the SVD to invert a matrix <span class="math notranslate nohighlight">\(\boldsymbol{X}^\boldsymbol{X}\)</span> which is singular or near singular?
|
||||
The simple answer is to use the linear algebra function for pseudoinvers, that is</p>
|
||||
The simple answer is to use the linear algebra function for the computation of the pseudoinverse of a given matrix <span class="math notranslate nohighlight">\(\boldsymbol{X}\)</span>, that is</p>
|
||||
<div class="cell docutils container">
|
||||
<div class="cell_input docutils container">
|
||||
<div class="highlight-ipython3 notranslate"><div class="highlight"><pre><span></span><span class="n">Ainv</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linlag</span><span class="o">.</span><span class="n">pinv</span><span class="p">(</span><span class="n">A</span><span class="p">)</span>
|
||||
<div class="highlight-ipython3 notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
|
||||
<span class="n">X</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span> <span class="p">[</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">],[</span><span class="mi">2</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">5</span><span class="p">],[</span><span class="mi">3</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">6</span><span class="p">]])</span>
|
||||
<span class="n">Xinv</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linlag</span><span class="o">.</span><span class="n">pinv</span><span class="p">(</span><span class="n">X</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cell_output docutils container">
|
||||
<div class="output traceback highlight-ipythontb notranslate"><div class="highlight"><pre><span></span><span class="gt">---------------------------------------------------------------------------</span>
|
||||
<span class="ne">NameError</span><span class="g g-Whitespace"> </span>Traceback (most recent call last)
|
||||
<span class="nn">Input In [1],</span> in <span class="ni"><cell line: 1></span><span class="nt">()</span>
|
||||
<span class="ne">----> </span><span class="mi">1</span> <span class="n">Ainv</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linlag</span><span class="o">.</span><span class="n">pinv</span><span class="p">(</span><span class="n">A</span><span class="p">)</span>
|
||||
<span class="ne">AttributeError</span><span class="g g-Whitespace"> </span>Traceback (most recent call last)
|
||||
<span class="nn">Input In [1],</span> in <span class="ni"><cell line: 3></span><span class="nt">()</span>
|
||||
<span class="g g-Whitespace"> </span><span class="mi">1</span> <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
|
||||
<span class="g g-Whitespace"> </span><span class="mi">2</span> <span class="n">X</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span> <span class="p">[</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">],[</span><span class="mi">2</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">5</span><span class="p">],[</span><span class="mi">3</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">6</span><span class="p">]])</span>
|
||||
<span class="ne">----> </span><span class="mi">3</span> <span class="n">Xinv</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linlag</span><span class="o">.</span><span class="n">pinv</span><span class="p">(</span><span class="n">X</span><span class="p">)</span>
|
||||
|
||||
<span class="ne">NameError</span>: name 'np' is not defined
|
||||
<span class="nn">File ~/miniforge3/envs/myenv/lib/python3.9/site-packages/numpy/__init__.py:313,</span> in <span class="ni">__getattr__</span><span class="nt">(attr)</span>
|
||||
<span class="g g-Whitespace"> </span><span class="mi">310</span> <span class="kn">from</span> <span class="nn">.testing</span> <span class="kn">import</span> <span class="n">Tester</span>
|
||||
<span class="g g-Whitespace"> </span><span class="mi">311</span> <span class="k">return</span> <span class="n">Tester</span>
|
||||
<span class="ne">--> </span><span class="mi">313</span> <span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"module </span><span class="si">{!r}</span><span class="s2"> has no attribute "</span>
|
||||
<span class="g g-Whitespace"> </span><span class="mi">314</span> <span class="s2">"</span><span class="si">{!r}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="vm">__name__</span><span class="p">,</span> <span class="n">attr</span><span class="p">))</span>
|
||||
|
||||
<span class="ne">AttributeError</span>: module 'numpy' has no attribute 'linlag'
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -142,12 +142,14 @@
|
||||
# ## Code for SVD and Inversion of Matrices
|
||||
#
|
||||
# How do we use the SVD to invert a matrix $\boldsymbol{X}^\boldsymbol{X}$ which is singular or near singular?
|
||||
# The simple answer is to use the linear algebra function for pseudoinvers, that is
|
||||
# The simple answer is to use the linear algebra function for the computation of the pseudoinverse of a given matrix $\boldsymbol{X}$, that is
|
||||
|
||||
# In[1]:
|
||||
|
||||
|
||||
Ainv = np.linlag.pinv(A)
|
||||
import numpy as np
|
||||
X = np.array( [ [1,2,3],[2,4,5],[3,5,6]])
|
||||
Xinv = np.linlag.pinv(X)
|
||||
|
||||
|
||||
# Let us first look at a matrix which does not causes problems and write our own function where we just use the SVD.
|
||||
|
||||
+255
-253
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user