矩阵是个什么东西(三)

声明:转自孟岩理解矩阵:https://blog.youkuaiyun.com/myan/article/details/1865397
首先来总结一下前面两部分的一些主要结论:
1. 首先有空间,空间可以容纳对象运动的。一种空间对应一类对象。
2. 有一种空间叫线性空间,线性空间是容纳向量对象运动的。
3. 运动是瞬时的,因此也被称为变换。
4. 矩阵是线性空间中运动(变换)的描述。
5. 矩阵与向量相乘,就是实施运动(变换)的过程。
6. 同一个变换,在不同的坐标系下表现为不同的矩阵,但是它们的本质是一样的,所以本征值相同。

    下面让我们把视力集中到一点以改变我们以往看待矩阵的方式。我们知道,线性空间里的基本对象是向量,而向量是这么表示的:

    [a1, a2, a3, ..., an]

   矩阵呢?矩阵是这么表示的:

    a11, a12, a13, ..., a1n
    a21, a22, a23, ..., a2n
                 ...
    an1, an2, an3, ..., ann

    不用太聪明,我们就能看出来,矩阵是一组向量组成的。特别的,n维线性空间里的方阵是由n个n维向量组成的。我们在这里只讨论这个n阶的、非奇异的方阵,因为理解它就是理解矩阵的关键,它才是一般情况,而其他矩阵都是意外,都是不得不对付的讨厌状况,大可以放在一边。这里多一句嘴,学习东西要抓住主流,不要纠缠于旁支末节。很可惜我们的教材课本大多数都是把主线埋没在细节中的,搞得大家还没明白怎么回事就先被灌晕了。比如数学分析,明明最要紧的观念是说,一个对象可以表达为无穷多个合理选择的对象的线性和,这个概念是贯穿始终的,也是数学分析的精华。但是课本里自始至终不讲这句话,反正就是让你做吉米多维奇,掌握一大堆解偏题的技巧,记住各种特殊情况,两类间断点,怪异的可微和可积条件(谁还记得柯西条件、迪里赫莱条件...?),最后考试一过,一切忘光光。要我说,还不如反复强调这一个事情,把它深深刻在脑子里,别的东西忘了就忘了,真碰到问题了,再查数学手册嘛,何必因小失大呢?

    言归正传。如果一组向量是彼此线性无关的话,那么它们就可以成为度量这个线性空间的一组基,从而事实上成为一个坐标系体系,其中每一个向量都躺在一根坐标轴上,并且成为那根坐标轴上的基本度量单位(长度1)。

    现在到了关键的一步。看上去矩阵就是由一组向量组成的,而且如果矩阵非奇异的话(我说了,只考虑这种情况),那么组成这个矩阵的那一组向量也就是线性无关的了,也就可以成为度量线性空间的一个坐标系。结论:矩阵描述了一个坐标系。

    “慢着!”,你嚷嚷起来了,“你这个骗子!你不是说过,矩阵就是运动吗?怎么这会矩阵又是坐标系了?”

    嗯,所以我说到了关键的一步。我并没有骗人,之所以矩阵又是运动,又是坐标系,那是因为——

    “运动等价于坐标系变换”。

    对不起,这话其实不准确,我只是想让你印象深刻。准确的说法是:

   “对象的变换等价于坐标系的变换”。

   或者:

   “固定坐标系下一个对象的变换等价于固定对象所处的坐标系变换。”

   说白了就是:

    “运动是相对的。”        

    让我们想想,达成同一个变换的结果,比如把点(1, 1)变到点(2, 3)去,你可以有两种做法。第一,坐标系不动,点动,把(1, 1)点挪到(2, 3)去。第二,点不动,变坐标系,让x轴的度量(单位向量)变成原来的1/2,让y轴的度量(单位向量)变成原先的1/3,这样点还是那个点,可是点的坐标就变成(2, 3)了。方式不同,结果一样。

    从第一个方式来看,那就是我在《理解矩阵》1/2中说的,把矩阵看成是运动描述,矩阵与向量相乘就是使向量(点)运动的过程。在这个方式下,

   Ma = b

   的意思是:

   “向量a经过矩阵M所描述的变换,变成了向量b。”

    而从第二个方式来看,矩阵M描述了一个坐标系,姑且也称之为M。那么:

    Ma = b

   的意思是:

    “有一个向量,它在坐标系M的度量下得到的度量结果向量为a,那么它在坐标系I的度量下,这个向量的度量结果是b。”

    这里的I是指单位矩阵,就是主对角线是1,其他为零的矩阵。

    而这两个方式本质上是等价的。

    我希望你务必理解这一点,因为这是本篇的关键。

    正因为是关键,所以我得再解释一下。

    在M为坐标系的意义下,如果把M放在一个向量a的前面,形成Ma的样式,我们可以认为这是对向量a的一个环境声明。它相当于是说:

    “注意了!这里有一个向量,它在坐标系M中度量,得到的度量结果可以表达为a。可是它在别的坐标系里度量的话,就会得到不同的结果。为了明确,我把M放在前面,让你明白,这是该向量在坐标系M中度量的结果。”

   那么我们再看孤零零的向量b:

   b

   多看几遍,你没看出来吗?它其实不是b,它是:

   Ib

   也就是说:“在单位坐标系,也就是我们通常说的直角坐标系I中,有一个向量,度量的结果是b。”

   而  Ma = Ib的意思就是说:

   “在M坐标系里量出来的向量a,跟在I坐标系里量出来的向量b,其实根本就是一个向量啊!”

   这哪里是什么乘法计算,根本就是身份识别嘛。

   从这个意义上我们重新理解一下向量。向量这个东西客观存在,但是要把它表示出来,就要把它放在一个坐标系中去度量它,然后把度量的结果(向量在各个坐标轴上的投影值)按一定顺序列在一起,就成了我们平时所见的向量表示形式。你选择的坐标系(基)不同,得出来的向量的表示就不同。向量还是那个向量,选择的坐标系不同,其表示方式就不同。因此,按道理来说,每写出一个向量的表示,都应该声明一下这个表示是在哪个坐标系中度量出来的。表示的方式,就是 Ma,也就是说,有一个向量,在M矩阵表示的坐标系中度量出来的结果为a。我们平时说一个向量是[2 3 5 7]T,隐含着是说,这个向量在 I 坐标系中的度量结果是[2 3 5 7]T,因此,这个形式反而是一种简化了的特殊情况。

    注意到,M矩阵表示出来的那个坐标系,由一组基组成,而那组基也是由向量组成的,同样存在这组向量是在哪个坐标系下度量而成的问题。也就是说,表述一个矩阵的一般方法,也应该要指明其所处的基准坐标系。所谓M,其实是 IM,也就是说,M中那组基的度量是在 I 坐标系中得出的。从这个视角来看,M×N也不是什么矩阵乘法了,而是声明了一个在M坐标系中量出的另一个坐标系N,其中M本身是在I坐标系中度量出来的。

   回过头来说变换的问题。我刚才说,“固定坐标系下一个对象的变换等价于固定对象所处的坐标系变换”,那个“固定对象”我们找到了,就是那个向量。但是坐标系的变换呢?我怎么没看见?

   请看:

   Ma = Ib

   我现在要变M为I,怎么变?对了,再前面乘以个M-1,也就是M的逆矩阵。换句话说,你不是有一个坐标系M吗,现在我让它乘以个M-1,变成I,这样一来的话,原来M坐标系中的a在I中一量,就得到b了。

   我建议你此时此刻拿起纸笔,画画图,求得对这件事情的理解。比如,你画一个坐标系,x轴上的衡量单位是2,y轴上的衡量单位是3,在这样一个坐标系里,坐标为(1,1)的那一点,实际上就是笛卡尔坐标系里的点(2, 3)。而让它原形毕露的办法,就是把原来那个坐标系:

   2 0
   0 3

   的x方向度量缩小为原来的1/2,而y方向度量缩小为原来的1/3,这样一来坐标系就变成单位坐标系I了。保持点不变,那个向量现在就变成了(2, 3)了。

   怎么能够让“x方向度量缩小为原来的1/2,而y方向度量缩小为原来的1/3”呢?就是让原坐标系:

  2 0
  0 3

   被矩阵:

   1/2   0
     0   1/3

   左乘。而这个矩阵就是原矩阵的逆矩阵。

   下面我们得出一个重要的结论:

    “对坐标系施加变换的方法,就是让表示那个坐标系的矩阵与表示那个变化的矩阵相乘。”

    再一次的,矩阵的乘法变成了运动的施加。只不过,被施加运动的不再是向量,而是另一个坐标系。

    如果你觉得你还搞得清楚,请再想一下刚才已经提到的结论,矩阵MxN,一方面表明坐标系N在运动M下的变换结果,另一方面,把M当成N的前缀,当成N的环境描述,那么就是说,在M坐标系度量下,有另一个坐标系N。这个坐标系N如果放在I坐标系中度量,其结果为坐标系MxN。

    在这里,我实际上已经回答了一般人在学习线性代数是最困惑的一个问题,那就是为什么矩阵的乘法要规定成这样。简单地说,是因为:

    1. 从变换的观点看,对坐标系N施加M变换,就是把组成坐标系N的每一个向量施加M变换。

    2. 从坐标系的观点看,在M坐标系中表现为N的另一个坐标系,这也归结为,对N坐标系基的每一个向量,把它在I坐标系中的坐标找出来,然后汇成一个新的矩阵。

    3. 至于矩阵乘以向量为什么要那样规定,那是因为一个在M中度量为a的向量,如果想要恢复在I中的真像,就必须分别与M中的每一个向量进行內积运算。我把这个结论的推导留给感兴趣的朋友吧。应该说,其实到了这一步,已经很容易了。

    综合以上1/2/3,矩阵的乘法就得那么规定,一切有根有据,绝不是哪个神经病胡思乱想出来的。

    我已经无法说得更多了。矩阵又是坐标系,又是变换。到底是坐标系,还是变换,已经说不清楚了,运动与实体在这里统一了,物质与意识的界限已经消失了,一切归于无法言说,无法定义了。道可道,非常道,名可名,非常名。矩阵是在是不可道之道,不可名之名的东西。到了这个时候,我们不得不承认,我们伟大的线性代数课本上说的矩阵定义,是无比正确的:

    “矩阵就是由m行n列数放在一起组成的数学对象。”

    好了,这基本上就是我想说的全部了。还留下一个行列式的问题。矩阵M的行列式实际上是组成M的各个向量按照平行四边形法则搭成一个n维立方体的体积。对于这一点,我只能感叹于其精妙,却无法揭开其中奥秘了。也许我掌握的数学工具不够,我希望有人能够给我们大家讲解其中的道理了。

    我不知道是否讲得足够清楚了,反正这一部分需要您花些功夫去推敲。

    此外,请大家不必等待这个系列的后续部分。以我的工作情况而言,近期内很难保证继续投入脑力到这个领域中,尽管我仍然对此兴致浓厚。不过如果还有(四)的话,可能是一些站在应用层面的考虑,比如对计算机图形学相关算法的理解。但是我不承诺这些讨论近期内会出现了。
<think>根据问题描述,我们得到了一个61×128的矩阵。这个矩阵是在之前的地转调整模拟代码中产生的。回顾之前的代码:在原始代码中,我们设置时间步长为7200秒(2小时),模拟总时间为5天(5*24*3600秒)。时间步长个数为:5*24*3600/7200+1=5*12+1=61个时间点。同时,空间网格点数量为N=128(即空间离散点为128个)。因此,这个61×128的矩阵很可能是某个物理量(如u、v或p)随时间(61个时刻)和空间(128个位置)的变化数据。具体来说,在循环中,我们对每个时间步长和每个波数模式进行计算,然后通过逆傅里叶变换得到物理空间中的值,存储在u、v、p中。以v分量为例,v(j,:)表示第j个时间步在所有128个空间点上的v分量值。所以,这个61×128的矩阵可能是:-时间×空间的矩阵,即61个时间步(行)和128个空间点(列)上的某个物理量(u、v或p)的值。在代码中,我们计算了u、v、p个变量,每个变量都是61×128的矩阵(在代码中,u(j,:)等是每一时间步的空间分布,共有61个时间步)。例如,在之前的代码片段中:```matlabu(j,:)=real(ifft(U(j,:),N));```这里,对于每个时间步j(从1到61),我们对该时间步的所有波数模式进行逆傅里叶变换,得到128个空间点的值,存储为u矩阵的一行(即j行,128列)。因此,u是一个61×128的矩阵,v和p同理。因此,61×128矩阵的每一行对应一个时间点,每一列对应一个空间位置(沿经度方向均匀分布的128个点)。如果需要更具体的解释,可以结合代码上下文。但根据问题描述,我们得到了这样一个矩阵,现在我们需要对它进行分析或可视化。如果我们想要可视化这个矩阵(例如v分量),我们可以:1.绘制该矩阵的时空图(横轴空间,纵轴时间),以观察随时间的变化在空间上的传播。2.绘制特定时间点的空间分布(如最后时刻,即第61行)。3.绘制特定空间位置随时间的变化。下面给出一个示例代码,用于可视化这个61×128的矩阵(这里以v分量为示例):</think> 这个61×128矩阵是你在运行地转调整模拟时生成的**v分量速度场**的历史数据。让我详细解释它的结构和意义: ### 矩阵结构分析 1. **维度含义**: - **61行**:表示61个时间点 ```matlab % 时间设置:5天 × 24小时 × 3600秒 = 432,000秒总时间 % 时间步长:7200秒(2小时) 时间点数 = 432000/7200 + 1 = 61 ``` - **128列**:表示128个空间位置(沿经度方向) ```matlab N = 128; % 空间网格点数 x = linspace(0, Lx, N); % 经度网格 (从0到16000km,分为128个点) ``` 2. **数据内容**: - 每个元素 `v(t,x)` 表示特定时间点在特定位置上的**经向速度**(南北方向的风速) - 单位为 m/s ### 矩阵可视化 以下是可视化这个矩阵的完整代码: ```matlab % v_field_visualization.m function visualize_v_field() load('v_matrix.mat'); % 加载存储的61×128矩阵 Lx = 16000; % 区域宽度 (km) runtime = 5; % 模拟天数 % 创建空间和时间坐标轴 x = linspace(0, Lx, size(v_matrix, 2)); % 空间网格 (km) time_hours = linspace(0, runtime*24, size(v_matrix, 1)); % 时间 (小时) % 创建时间-空间曲面图 figure('Position', [100,100,1200,600]); surf(x, time_hours, v_matrix, 'EdgeColor', 'none'); % 设置视角和光照 view(-30, 45); camlight right; lighting gouraud; % 坐标轴标签和标题 xlabel('经度位置 (km)', 'FontSize', 12); ylabel('时间 (小时)', 'FontSize', 12); zlabel('经向速度 v (m/s)', 'FontSize', 12); title('经向速度场时空演化 (纬度15°)', 'FontSize', 14, 'FontWeight', 'bold'); % 添加时间切片 hold on; plot3(x, ones(size(x))*0, v_matrix(1,:), 'r-', 'LineWidth', 2); % 初始时间 plot3(x, ones(size(x))*time_hours(end), v_matrix(end,:), 'b-', 'LineWidth', 2); % 结束时间 hold off; % 添加时间标记 text(max(x), min(time_hours), max(v_matrix(:)), '初始', 'FontSize', 12, 'Color', 'r'); text(max(x), max(time_hours), max(v_matrix(:)), '最终', 'FontSize', 12, 'Color', 'b'); % 添加色标 colorbar; caxis([min(v_matrix(:)), max(v_matrix(:))]); % 确保颜色对应实际值范围 % 保存图像 saveas(gcf, 'v_field_timespace.png'); %% 额外分析:最终状态 figure; subplot(2,1,1); % 绘制最终时间点的空间分布 plot(x, v_matrix(end, :), 'LineWidth', 2); title('最终状态经向速度分布'); xlabel('经度位置 (km)'); ylabel('v (m/s)'); grid on; subplot(2,1,2); % 找出特征点 [min_v, min_idx] = min(v_matrix(end, :)); [max_v, max_idx] = max(v_matrix(end, :)); % 绘制并标注 plot(x, v_matrix(end, :), 'LineWidth', 2); hold on; plot(x(min_idx), min_v, 'ro', 'MarkerSize', 10, 'MarkerFaceColor', 'r'); plot(x(max_idx), max_v, 'bo', 'MarkerSize', 10, 'MarkerFaceColor', 'b'); plot([x(min_idx), x(max_idx)], [min_v, max_v], 'k--'); title('特征点测量'); xlabel('经度位置 (km)'); ylabel('v (m/s)'); grid on; legend('速度分布', '南风极值', '北风极值', '经向尺度'); % 添加尺度标注 scale_km = abs(x(max_idx) - x(min_idx)); text(mean([x(min_idx), x(max_idx)]), mean([min_v, max_v]),... sprintf('实测尺度: %.1f km', scale_km),... 'FontSize', 12, 'BackgroundColor', 'w'); % 保存结果 saveas(gcf, 'v_final_state.png'); end ``` ### 关键物理意义解释 1. **时空结构**: - **初始状态**(第1行):v分量接近0,表示初始状态无经向风 - **最终状态**(第61行):形成不对称结构,西侧为南风(负值),东侧为北风(正值) - **中间演变**:展示波动传播过程(重力惯性波调整) 2. **特征点物理意义**: ```matlab [min_v, min_idx] = min(v_matrix(end, :)); % 最大南风位置(西侧) [max_v, max_idx] = max(v_matrix(end, :)); % 最大北风位置(东侧) scale_km = abs(x(max_idx) - x(min_idx)); % 实测变形半径 ``` - 南风极值点 → 反气旋环流西侧 - 北风极值点 → 反气旋环流东侧 - 两点间距 → Rossby变形半径的实际测量值 3. **颜色映射意义**: - 红色区域:北风区(v > 0)→ 流体向高纬运动 - 蓝色区域:南风区(v < 0)→ 流体向赤道运动 - 颜色深浅表示风速大小 ### 典型图示说明 1. **时空曲面图**: - X轴:空间位置(0-16,000公里) - Y轴:时间(0-120小时) - Z轴:经向速度(-3~3 m/s) - 颜色:风速方向与大小(蓝负红正) 2. **最终状态分析图**: - 上图:完整速度分布 - 下图:特征点标识和尺度测量 - 实测尺度约1200公里(纬度15°典型值)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值