Matlab解决施密特正交规范化矩阵(代码开源)

2024-06-06 01:36

本文主要是介绍Matlab解决施密特正交规范化矩阵(代码开源),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#最近在学习matlab,刚好和线代论文重合了

于是心血来潮用matlab建了一个模型来解决施密特正交规范化矩阵。

我们知道这个正交化矩阵挺公式化的,一般公式化的内容我们都可以用计算机来进行操作,节约我们人工的时间。

我们首先把矩阵导入进去,之后计算投影的长度进行缩减。进行正交化

之后单独进行规范化

代码如下:
 

%%% 施密特正交化
a=ones(3,3);   % 假设3行,3列,视题目而定
% 必须是线性无关的向量组%带入题目的向量得到:
a(:,1)=[1;2;-1];
a(:,2)=[-1;3;1];
a(:,3)=[4;-1;0];a1 = a(:,1);
c=size(a1);  % 去判断a1多少行b=zeros(c(1),3);%与题目中向量个数行列一样    
b(:,1)=a(:,1);
%正交化
for i=2:3%从第二个开始递归for j=1:i-1b(:,i)=b(:,i)-dot(a(:,i),b(:,j))/dot(b(:,j),b(:,j))*b(:,j);endb(:,i)=b(:,i)+a(:,i);
end%单位化for k=1:3b(:,k)=b(:,k)/norm(b(:,k));enddisp(b);%b即为正交规范组!!

我们带入一道例题:

设a1=[1,2,-1]T,a2=[-1,3,1]T,a3=[4,-1,0]T

试用施密特正交化过程把这组向量规范正交化.


解取b1=a1;

b2=a2-[a2,b1]/(||b1||)2b1=[-1,3,1]T-4/6[1,2,-1]T=5/3[-1,1,1]T;

B3=a3-[a3,b1]/(||b1||)2b1-[a3,b2]/(||b2||)2b2=[4,-1,0]T-1/3[1,2,-1]T+5/3[-1,1,1]T=2[1,0,1]T;


再把它们单位化,

取e1=b1/||b1||=1/√6[1,2,-1]T,e2=b2/||b2||=1/√3[-1,1,1]T,e3=b3/||b3||=1/√2[1,0,1]T

以上为数学人工方法求解,而如果直接带入我们建立的模型,我们可以直接得到:

谢谢大家啦,以上就是代码和展示部分!

这篇关于Matlab解决施密特正交规范化矩阵(代码开源)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1034724

相关文章

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

Python Jupyter Notebook导包报错问题及解决

《PythonJupyterNotebook导包报错问题及解决》在conda环境中安装包后,JupyterNotebook导入时出现ImportError,可能是由于包版本不对应或版本太高,解决方... 目录问题解决方法重新安装Jupyter NoteBook 更改Kernel总结问题在conda上安装了

Goland debug失效详细解决步骤(合集)

《Golanddebug失效详细解决步骤(合集)》今天用Goland开发时,打断点,以debug方式运行,发现程序并没有断住,程序跳过了断点,直接运行结束,网上搜寻了大量文章,最后得以解决,特此在这... 目录Bug:Goland debug失效详细解决步骤【合集】情况一:Go或Goland架构不对情况二:

解决jupyterLab打开后出现Config option `template_path`not recognized by `ExporterCollapsibleHeadings`问题

《解决jupyterLab打开后出现Configoption`template_path`notrecognizedby`ExporterCollapsibleHeadings`问题》在Ju... 目录jupyterLab打开后出现“templandroidate_path”相关问题这是 tensorflo

如何解决Pycharm编辑内容时有光标的问题

《如何解决Pycharm编辑内容时有光标的问题》文章介绍了如何在PyCharm中配置VimEmulator插件,包括检查插件是否已安装、下载插件以及安装IdeaVim插件的步骤... 目录Pycharm编辑内容时有光标1.如果Vim Emulator前面有对勾2.www.chinasem.cn如果tools工

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(

Java多线程父线程向子线程传值问题及解决

《Java多线程父线程向子线程传值问题及解决》文章总结了5种解决父子之间数据传递困扰的解决方案,包括ThreadLocal+TaskDecorator、UserUtils、CustomTaskDeco... 目录1 背景2 ThreadLocal+TaskDecorator3 RequestContextH

解决JavaWeb-file.isDirectory()遇到的坑问题

《解决JavaWeb-file.isDirectory()遇到的坑问题》JavaWeb开发中,使用`file.isDirectory()`判断路径是否为文件夹时,需要特别注意:该方法只能判断已存在的文... 目录Jahttp://www.chinasem.cnvaWeb-file.isDirectory()遇

linux进程D状态的解决思路分享

《linux进程D状态的解决思路分享》在Linux系统中,进程在内核模式下等待I/O完成时会进入不间断睡眠状态(D状态),这种状态下,进程无法通过普通方式被杀死,本文通过实验模拟了这种状态,并分析了如... 目录1. 问题描述2. 问题分析3. 实验模拟3.1 使用losetup创建一个卷作为pv的磁盘3.

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意