MATLAB(五)在线性代数中的应用

MATLAB在线性代数中的应用

(一)向量组的线性相关性

求列向量组A的一个最大线性无关组,可用命令rref(A)将A化成行最简形,其中单位向量对应的列向量即为最大线性无关组所含向量,其他列向量的坐标即为其对应向量用最大线性无关组线性表示的系数。

例1. 求下列矩阵列向量组的一个最大无关组。

程序如下:

format rat   %有理分数的显示格式
a = [1 2 -1 0 2;-2 4 2 6 -6;2 -1 0 2 3;3 3 3 3 4];
b = rref(a)
format   %恢复到短小数的显示格式

结果为:

b =1              0              0              0             11/6     0              1              0              0              0       0              0              1              0             -1/6     0              0              0              1             -1/3  

记矩阵A的五个列向量依次为a1、a2、a3、a4、a5,则a1、a2、a3、a4是列向量组的一个最大无关组,且有

a5=\frac{11}{6}\times a1-\frac{1}{6}\times a3-\frac{1}{3}\times a4

例2.设

验证a1、a2、a3是R^{3}的一个基,并把b1、b2用这个基线性表示。

程序如下:

clc,clear;
format rat
a = [2 2 -1;2 -1 2;-1 2 2];
b = [1 4;0 3;-4 2];
c = rref([a,b])
format   %恢复到短小数的显示格式

结果为:

c =1              0              0              2/3            4/3     0              1              0             -2/3            1       0              0              1             -1              2/3   

说明a1、a2、a3是R^{3}的一个基,且有b1=\frac{2}{3}\times a1-\frac{2}{3}\times a2-a3; b2=\frac{4}{3}\times a1+a2+\frac{2}{3}\times a3

(二)齐次线性方程组

在Matlab中,函数null用来求解零空间,即满足Ax = 0的解空间,实际上是求出解空间的一组基(基础解系)。格式如下:

z = null(A)  %z的列向量为方程组的正交规范基,满足zTz=E
z = null(A,'r')  %z的列向量是方程Ax=0的有理基

例3. 求方程组的通解

程序如下:

clc,clear;
format rat
a = [1 2 2 1;2 1 -2 -2;1 -1 -4 -3];
b = null(a,'r')
syms k1 k2
x = k1*b(:,1)+k2*b(:,2)   %写出方程组的通解

基础解系和通解分别为:

b =2              5/3     -2             -4/3     1              0       0              1       
x =2*k1 + (5*k2)/3- 2*k1 - (4*k2)/3k1k2

(三)非齐次线性方程组

Matlab中解非齐次线性方程组可以使用‘\’,虽然表面上只是一个简单的符号,而它的内部却包含许多自适应算法,如对超定方程(无解)用最小二乘法,对欠定方程(多解)它将给出范数最小的一个解。

另外求解欠定方程组(多解)可以使用求矩阵A的行最简形命令rref(A),求出所有的基础解系。

例4.求超定方程组

程序如下:

clc,clear;
format rat
a = [1 1 0;1 0 1;1 1 1;1 2 -1];
b = [1;2;0;-1];
x1 = a\b    %这里\和pinv是等价的
x2 = pinv(a)*b

结果为:

x1 =17/6     -13/6     -2/3     
x2 =17/6     -13/6     -2/3     

求得最小二乘解为

x1=\frac{17}{6};x2=-\frac{13}{6};x3=-\frac{2}{3}

例5.求解方程组

程序如下:

clc,clear;
format rat
a = [1 -1 -1 1 0;1 -1 1 -3 1;1 -1 -2 3  -1/2];
b = rref(a)
format  %恢复到短小数的显示格式

结果为:

b =1             -1              0             -1              1/2     0              0              1             -2              1/2     0              0              0              0              0 

所以,方程组有解,并有

因而方程组的通解为

求解非齐次线性方程组需要先判断方程组是否有解,若有解,再去求通解。因此,步骤为:

  • 第一步,判断Ax=b是否有解,若有解则进行第二步;
  • 第二步,求Ax=b的一个特解;
  • 第三步,求Ax=0的通解;
  • 第四步,写出Ax=b的通解。

(四)相似矩阵及二次型

有时候我们需要精确的特征值和特征向量,就必须利用Matlab的符号运算功能,在Matlab中创建符号矩阵和创建数值矩阵的形式很相似,只不过要用到符号定义函数sym。下面介绍shi使用次函数创建符号矩阵的几种形式。

1.  使用sym函数直接创建符号矩阵

此方法和直接创建数值矩阵的方法几乎完全相同,矩阵元素可以是符号表达式,各符号表达式的长度可以不同,矩阵元素之间可用逗号或空格分隔。例如:

clc,clear;
x = sym('[a+sin(d),b;1/c,d]');
y = det(x)

结果为:

y =
(a*c*d - b + c*d*sin(d))/c

2.  将数值矩阵转化为符号矩阵

在Matlab中,数值矩阵不能直接参与符号运算,必须先转化为符号矩阵。例如:

clc,clear;
a = [2/3, sqrt(2);3,1]
b = sym(a)

结果为:

a =0.666666666666667   1.4142135623730953.000000000000000   1.000000000000000
b =
[ 2/3, 2^(1/2)]
[   3,       1]

3.  符号矩阵的索引和修改

Matlab的符号矩阵索引和修改同数值矩阵的索引和修改完全相同。

b(2,2) = 'log(2)'
b =
[ 2/3, 2^(1/2)]
[   3,  log(2)]

例6. 求一个正交变换x = Py, 把二次型

f=2x_{1}x_{2}+2x_{1}x_{3}-2x_{1}x_{4}-2x_{2}x_{3}+2x_{2}x_{4}+2x_{3}x_{4}

化为标准型。

二次型矩阵为

程序如下:

clc,clear;
A = [0, 1, 1, -1;1, 0, -1, 1;1, -1, 0, 1;-1, 1, 1, 0];
[P, D] = eig(A)

结果为:

P =-0.5000    0.2887    0.7887    0.21130.5000   -0.2887    0.2113    0.78870.5000   -0.2887    0.5774   -0.5774-0.5000   -0.8660         0         0
D =-3.0000         0         0         00    1.0000         0         00         0    1.0000         00         0         0    1.0000

P就是所求的正交矩阵,使得P^{T}AP=D,x = Py,其中x = [x_{1},x_{2},x_{3},x_{4}]^{T},y = [y_{1},y_{2},y_{3},y_{4}]^{T},

化简后的二次型为g = -3y_{1}^{2}+y_{2}^{2}+y_{3}^{2}+y_{4}^{2}

例7.  判别二次型f=2x_{1}^{2}+4x_{2}^{2}+5x_{3}^{2}-4x_{1}x_{2}的正定性,并求正交变换把二次型化che成标准型。

程序如下:

clc,clear;
a = [2 -2 0;-2 4 0;0 0 5];
b = eig(a)
if all(b>0)fprintf('二次型正定\n');
elsefprintf('二次型非正定\n');
end
[c,d]=eig(a)

结果为:

b =0.76395.00005.2361
二次型正定
c =-0.8507         0   -0.5257-0.5257         0    0.85070    1.0000         0
d =0.7639         0         00    5.0000         00         0    5.2361

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/490835.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全球市值最大公司的巨变:20年,已是沧海桑田

来源: 资本实验室三十年河东,三十年河西。而商业的世界,变化来得更为迅猛、激烈。就比如当我们比较1999到2019年间的全球市值最大公司,并回看二十年时,惊觉已是沧海桑田。如果以更短的五年为一个观察周期,则…

python+OpenCV图像处理(六)图像平滑与滤波

图像平滑与滤波 运用它,首先就要了解它,什么是平滑滤波? 平滑滤波是低频增强的空间域滤波技术。它的目的有两类:一类是模糊;另一类是消除噪音。空间域的平滑滤波一般采用简单平均法进行,就是求邻近像元点的…

语音助手再次敲响隐私保护警钟

来源: 中国科学报智能手机内置的语音助手已成为人们生活中的亲密伙伴,大家习惯于让它完成报时、查询天气等日常任务甚至与它聊天解闷。然而,近期多家科技公司被曝光以智能语音助手录制用户谈话,再通过人工对语音做标注和反馈&…

大数据深度解析NLP文本摘要技术:定义、应用与PyTorch实战

文章目录 大数据深度解析NLP文本摘要技术:定义、应用与PyTorch实战1. 概述1.1 什么是文本摘要?1.2 为什么需要文本摘要? 2. 发展历程2.1 早期技术2.2 统计方法的崛起2.3 深度学习的应用2.4 文本摘要的演变趋势 3. 主要任务3.1 单文档摘要3.2 …

python+OpenCV图像处理(七)图像的形态学处理

图像的形态学处理 数学形态学(Mathematical morphology)是一门 建立在格论和拓扑学基础之上的图像分析学科,是数学形态学图像处理的基本理论。其基本的运算包括:腐蚀和膨胀、开运算和闭运算、骨架抽取、极限腐蚀、击中击不中变换、…

站立会议08

一、会议细节 时间   2014-4-27 21:10~21:40 地点   基教102 记录人   王岸城 二,会议记录 姓名今天你做了什么明天你要做什么今天遇到了什么问题王岸城记事本删除记事本修改无法使用数据库 苏月 实现登录和注册的连接 学习数据库 连接数据库信息…

【人工智能】机器人的未来发展:从工业自动化到知识自动化

来源:王飞跃博客【导读】智能时代的核心技术将是知识自动化,因此必须从一开始就加快、加强以软件形态为主的知识机器人的研发与应用,尽快形成软件和物理形态平行互动的新型机器人系统,并以此为突破口,引发下一代智能机…

python+OpenCV图像处理(八)边缘检测

边缘检测 边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化。边缘检测是特征提取中的一个研究领域。 图像边缘检测大幅度地减少了数据量,并且剔除了…

python+OpenCV图像处理(九)图像金字塔

图像金字塔 图像金字塔是图像多尺度表达的一种,是一种以多分辨率来解释图像的有效但概念简单的结构。图像金字塔最初用于机器视觉和图像压缩,一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合。其通…

3位物理学家获基础物理学特别突破奖

Peter van Nieuwenhuizen、Sergio Ferrara和Dan Freedman(从左至右)来源:中国科学报超引力理论是一个试图统一所有自然力的理论,在被提出40多年后,它是否能真实描述这个世界仍然悬而未决。尽管如此,该理论的…

python+OpenCV图像处理(十)霍夫变换简单图形检测

霍夫变换 霍夫变换(Hough Transform)是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法。主要用来从图像中分离出具有某种相同特征的几何形状(如:直线、圆等)。最基…

Windows下安装scikit-learn

在安装sklearn前,首先确保安装了Numpy、Scipy和matplotlib 安装Numpy: 首先到https://pypi.org/project/numpy/#files下载安装包 注意文件的版本,如“numpy-1.19.1-cp36-cp36m-win_amd64.whl”表示该文件适用于widows操作系统下64位的Pyth…

华为发布面向2025十大趋势

来源:华为华为今日发布全球产业展望GIV2025,提出智能世界正在加速而来,触手可及,并预测:到2025年,智能技术将渗透到每个人、每个家庭、每个组织,全球58%的人口将能享有5G网络,14%的家…

python+OpenCV图像处理(十一)图像轮廓检测

图像轮廓检测 (一)检测轮廓 在OpenCV-python中,使用cv2.findContours()函数来对图像进行轮廓检测。 返回三个值:image,contours,hierarchy contours指的是轮廓本身,hierarchy是每条轮廓对应的…

python+OpenCV图像处理(十二)车牌定位中对图像的形态学组合操作处理

车牌定位中对图像的形态学组合操作处理 所谓的车牌定位,其中最关键的部分就是对图片的处理,参数的设置,并使之拥有泛化能力。 首先传入图片,在进行大规模的图片处理时,因为无法确定图片的尺寸,所以需要将…

ACL 2019 知识图谱的全方位总结

来源:AI科技评论翻译 | 栗峰  审校 | Camel编辑 | Pita ACL 2019已经结束,但其空前的规模仍然震撼人心:2900多篇提交论文,660篇被接收,3000多名会议注册人员,以及4个超过400人的研讨会(比一些…

word只在第一页插入页眉

首先点击插入>页眉 在设计栏中勾上“首页不同”,如下所示:

Redis应用场景(转)

(来源:http://www.cnblogs.com/shanyou/archive/2012/09/04/2670972.html) Redis常用数据类型 Redis最为常用的数据类型主要有以下五种: StringHashListSetSorted set在具体描述这几种数据类型之前,我们先通过一张图了解下Redis内部内存管理中…

word删除页眉下面的横线

首先点击插入>页眉,输入页眉后,选中页眉内容: 点击“设计”栏: 点击页面边框: 然后按如下设置即可消除页眉下面的横线

TensorFlow 多任务学习

多任务学习 多任务学习,顾名思义,就是多个任务模型同时执行,进行模型的训练,利用模型的共性部分来简化多任务的模型,实现模型之间的融合与参数共享,可以在一定程度上优化模型的运算,提高计算机…