<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Mathematica 问答社区 - 分类 '矩阵' 的近期问答</title>
<link>https://mmaqa.com/qa/qa/%E7%9F%A9-%E9%98%B5</link>
<description>Powered by Question2Answer</description>
<item>
<title>已回答：怎么在编号的代码中输入矩阵进行计算？</title>
<link>https://mmaqa.com/qa/2713/?show=2719#a2719</link>
<description>矩阵就是二维列表。列表用大括号{}定界，元素用逗号分隔，形如{1,2,3}。&lt;br /&gt;
&lt;br /&gt;
建议先看教程，否则寸步难行。</description>
<category>矩阵</category>
<guid isPermaLink="true">https://mmaqa.com/qa/2713/?show=2719#a2719</guid>
<pubDate>Thu, 23 Apr 2020 02:51:31 +0000</pubDate>
</item>
<item>
<title>嵌套函数如何输入矩阵进行计算</title>
<link>https://mmaqa.com/qa/2714/</link>
<description>lsEigenvalue[H_] := Module[{emax, emaxspace, emin, eminspace, es},&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;es = Sort[Eigenvalues[H], Re[#1] &amp;lt; Re[#2] &amp;amp;];&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;emin = First[es];&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;emax = Last[es];&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;eminspace = &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Orthogonalize[NullSpace[H - emin*IdentityMatrix[Length[H]]]; &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;emaxspace = &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Orthogonalize[NullSpace[H - emax*IdentityMatrix[Length[H]]];&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Return[{{emin, eminspace}, {emax, emaxspace}}]&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;plotNR[A_, n_] := &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Module[{t = 0., td = 2 &amp;nbsp;\[Pi]/n, Ht, Kt, points = {}, &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;segment = {} , emax , emaxspace, emin, eminspace, vp, vm, Q, &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;R},&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PrintTemporary[ProgressIndicator[Dynamic[t], {0, 2 \[Pi]}]];&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;While[t &amp;lt; 2 \[Pi],&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Ht = (Exp[-I t]*A + Exp[I t]*ConjugateTranspose[A])/2;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{emax, emaxspace} = Last[lsEigenvalue[Ht]];&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;which[(* One dimensional eigenspace *)&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Length[emaxspace] == 1,&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;vp = First[emaxspace];&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AppendTo[points, Conjugate[vp].A.vp],&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Length[emaxspace] &amp;gt; 1,&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Kt = (Exp[-I t]*A - Exp[I t]*ConjugateTranspose[A])/(2 I);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Q = Transpose[emaxspace];&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;R = ConjugateTranspose[Q].Kt.Q;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{{emin, eminspace}, {emax, emaxspace}} = lsEigenvalue[R];&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;vp = Q.First[emaxspace];&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;vm = Q.First[eminspace];&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AppendTo[segments, {Conjugate[vm].A.vm, Conjugate[vp].A.vp}],&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(* Fail *)&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Ture,&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Print[&amp;quot;Error&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;];&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;t = t + td;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;];&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Return {DeleteDuplicates[points], DeleteDuplicates[segments]}]&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;]&lt;br /&gt;
&lt;br /&gt;
此代码如何输入矩阵进行计算？</description>
<category>矩阵</category>
<guid isPermaLink="true">https://mmaqa.com/qa/2714/</guid>
<pubDate>Tue, 07 Apr 2020 02:08:34 +0000</pubDate>
</item>
<item>
<title>已回答：为何matheamtica计算的不对啊</title>
<link>https://mmaqa.com/qa/2634/matheamtica?show=2637#a2637</link>
<description>

&lt;pre data-pbcklang=&quot;prettyprint lang-mma&quot; data-pbcktabsize=&quot;4&quot; class=&quot;prettyprint linenums lang-prettyprint lang-mma&quot;&gt;MaximalBy[{{79/16, {x -&amp;gt; -(3/4)}}, {-1 + 16/(3 Sqrt[3]), {x -&amp;gt; 2/Sqrt[3]}}}, N@*First]&lt;/pre&gt;

&lt;pre data-pbcklang=&quot;prettyprint lang-mma&quot; data-pbcktabsize=&quot;4&quot; class=&quot;prettyprint linenums lang-prettyprint lang-mma&quot;&gt;这样就可以选出来了&lt;/pre&gt;</description>
<category>矩阵</category>
<guid isPermaLink="true">https://mmaqa.com/qa/2634/matheamtica?show=2637#a2637</guid>
<pubDate>Sun, 13 Oct 2019 09:00:50 +0000</pubDate>
</item>
<item>
<title>请证明第二个等号，貌似用到泰勒展开且展开到一阶，其中的sigma是PauliMatrix。</title>
<link>https://mmaqa.com/qa/2568/sigmapaulimatrix</link>
<description>

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;https://mmaqa.com/qa/?qa=blob&amp;amp;qa_blobid=5590051788856251230&quot; style=&quot;height:180px; width:827px&quot;&gt;&lt;/p&gt;

&lt;p&gt;泰勒展开到一阶，其中的sigma是PauliMatrix&lt;/p&gt;</description>
<category>矩阵</category>
<guid isPermaLink="true">https://mmaqa.com/qa/2568/sigmapaulimatrix</guid>
<pubDate>Sat, 16 Mar 2019 03:55:21 +0000</pubDate>
</item>
<item>
<title>已回答：矩阵 Do循环 提示&quot;Objects of unequal length in {Null}\ {4,1,4,1} cannot be combined. &quot;</title>
<link>https://mmaqa.com/qa/1812/do-objects-of-unequal-length-in-null-cannot-combined?show=1816#a1816</link>
<description>

&lt;pre class=&quot;prettyprint lang-mma&quot;&gt;
Do[{mi = 10^(i + 17); Mi[[i]] = mi; 
  A = NDSolveValue[{M&amp;#39;[a] == M[a]^2*(2*10^(-68) + 7*10^(-59)*g/a^3), 
     M[1/(1 + zi)] == mi}, M, {a, (1/(1 + zi)), 1/(1 + z13)}]; 
  mf = A[1/(1 + z13)] - mi; Mf[[i]] = mf}, {i, 1, 44, 1};]






Do::iterb: 迭代器 {{i,1,44,1};} 没有适当的边界. &amp;gt;&amp;gt;





Do[{mi = 10^(i + 17); Mi[[i]] = mi; 
  A = NDSolveValue[{Derivative[1][M][a] == 
      M[a]^2 (2/10^68 + (7 g)/(10^59 a^3)), M[1/(1 + zi)] == mi}, 
    M, {a, 1/(1 + zi), 1/(1 + z13)}]; mf = A[1/(1 + z13)] - mi; 
  Mf[[i]] = mf}, {{i, 1, 44, 1};}]&lt;/pre&gt;



&lt;p&gt;我适当的把你的括号给补充完整，但是并不明白你是要做什么，而且代码有问题。&lt;/p&gt;</description>
<category>矩阵</category>
<guid isPermaLink="true">https://mmaqa.com/qa/1812/do-objects-of-unequal-length-in-null-cannot-combined?show=1816#a1816</guid>
<pubDate>Wed, 22 Mar 2017 08:20:19 +0000</pubDate>
</item>
<item>
<title>已回答：大规模系数矩阵的生成</title>
<link>https://mmaqa.com/qa/1676/?show=1677#a1677</link>
<description>

&lt;p&gt;有意思的问题。按理来说这个规模的矩阵生成，就算用for循环遍历往里填数也不应该这么慢，也不知道mma是抽了什么风。&lt;/p&gt;



&lt;p&gt;其中一个加速的方法是向量化，思路很简单我就直接上代码了&lt;/p&gt;



&lt;pre class=&quot;prettyprint lang-mma&quot;&gt;
m = DiagonalMatrix[1 - 0.5 h*k[h*#, h*#] &amp;amp;[Range[n + 1]]];
m[[2 ;; -1, 1]] = -0.5*h*k[h*Range[2, n + 1], 0];
Do[m[[j + 1 ;; -1, j]] = -h*k[h*Range[j + 1, n + 1], h*j], {j, 2, 
  n + 1}];
m = SparseArray@m;&lt;/pre&gt;



&lt;p&gt;效果如下&lt;/p&gt;



&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;https://mmaqa.com/qa/?qa=blob&amp;amp;qa_blobid=4513544336225877072&quot; style=&quot;height:543px; width:747px&quot;&gt;&lt;/p&gt;



&lt;p&gt;然而这种方法其实并不能解决问题，因为当n=20000的时候这样生成系数矩阵会爆内存（我16G内存的电脑直接卡死机了）&lt;/p&gt;



&lt;p&gt;事实上作为一个下三角矩阵，想要求解的话根本没有必要吧完整的矩阵生成出来，直接一行一行的迭代就好了，代码如下：&lt;/p&gt;



&lt;pre class=&quot;prettyprint lang-mma&quot;&gt;
ans = Module[{x, alist},
    x = ConstantArray[0., n + 1];
    x[[1]] = b[[1]]/(1 - 0.5 h*k[h, h]);
    Do[
     alist = -h*k[h*i, h*Range[i - 1]];
     alist[[1]] = -0.5*h*k[h*i, h*i];
     x[[i]] = (b[[i]] - alist.x[[1 ;; i - 1]])/(
      1 - 0.5 h*k[i h, i h]), {i, 2, n + 1}];
    x]; // AbsoluteTiming&lt;/pre&gt;



&lt;p&gt;n=4000时效果如下图，可以看到速度快乐很多，而且内存占用也从O(n^2)降到了O(n)。按照这种做法n=20000时用时也只有3秒多&lt;img alt=&quot;&quot; src=&quot;https://mmaqa.com/qa/?qa=blob&amp;amp;qa_blobid=639593403916887649&quot; style=&quot;height:687px; width:737px&quot;&gt;&lt;/p&gt;</description>
<category>矩阵</category>
<guid isPermaLink="true">https://mmaqa.com/qa/1676/?show=1677#a1677</guid>
<pubDate>Fri, 10 Feb 2017 13:21:07 +0000</pubDate>
</item>
<item>
<title>已回答：矩阵的循环相乘有直接的命令吗？</title>
<link>https://mmaqa.com/qa/1673/?show=1675#a1675</link>
<description>

&lt;p&gt;如果矩阵较大的话可以试试&lt;/p&gt;



&lt;pre class=&quot;prettyprint lang-mma&quot;&gt;
f[a_, b_, m_] :=
&amp;nbsp;Nest[{x = First@#.b, Last@#.x} &amp;amp;, {#, #} &amp;amp;[a.b], m - 1] // Last&lt;/pre&gt;



&lt;p&gt;能少算几次乘法&lt;/p&gt;</description>
<category>矩阵</category>
<guid isPermaLink="true">https://mmaqa.com/qa/1673/?show=1675#a1675</guid>
<pubDate>Thu, 09 Feb 2017 15:04:13 +0000</pubDate>
</item>
<item>
<title>怎样把Eigenvectors算出的本征矢归一化</title>
<link>https://mmaqa.com/qa/1118/eigenvectors</link>
<description>怎样把Eigenvectors算出的本征矢归一化&lt;br /&gt;
&lt;br /&gt;
In[1]:= Eigenvectors[{{a, b}, {c, d}}]&lt;br /&gt;
&lt;br /&gt;
Out[1]= {{-((-a + d + Sqrt[a^2 + 4 b c - 2 a d + d^2])/(2 c)),&lt;br /&gt;
&amp;nbsp;&amp;nbsp;1}, {-((-a + d - Sqrt[a^2 + 4 b c - 2 a d + d^2])/(2 c)), 1}}</description>
<category>矩阵</category>
<guid isPermaLink="true">https://mmaqa.com/qa/1118/eigenvectors</guid>
<pubDate>Fri, 19 Aug 2016 02:47:03 +0000</pubDate>
</item>
<item>
<title>已回答：为什么这个函数没有输出？</title>
<link>https://mmaqa.com/qa/911/?show=919#a919</link>
<description>

&lt;p&gt;其实这个问题很简单。&lt;/p&gt;



&lt;p&gt;首先i&amp;lt;-1必须得改，因为i&amp;lt;-1等于For完全没循环，代码等价于：&lt;/p&gt;



&lt;pre class=&quot;prettyprint lang-mma&quot;&gt;
Catch[For[j = 1, j &amp;lt; -2, j++]]&lt;/pre&gt;



&lt;p&gt;For里等价于不存在Throw，然后For本身并不返回值，所以Catch无任何输出。&lt;/p&gt;



&lt;p&gt;改成i&amp;lt;10后，在运行发现有输出了，但是输出是空括号{}。理由很简单，&lt;/p&gt;



&lt;pre class=&quot;prettyprint lang-mma&quot;&gt;
Table[GIRCF[466611/200 + (1332201 I)/2000, i][[2]], {i, 0, 10}]&lt;/pre&gt;



&lt;p&gt;可以发现前八项是个不等于0或Indeterminate的数，第9项开始等于0&lt;/p&gt;



&lt;p&gt;所以For循环里，前8次走的是Append这个Append[k, GIRCF[x, i][[1]]]这个分支。&lt;/p&gt;



&lt;p&gt;那么问题来了，你需要去学习Append和AppendTo的区别。&lt;/p&gt;</description>
<category>矩阵</category>
<guid isPermaLink="true">https://mmaqa.com/qa/911/?show=919#a919</guid>
<pubDate>Thu, 07 Jul 2016 08:14:48 +0000</pubDate>
</item>
</channel>
</rss>