MATLAB设计矩阵计算器要点Word下载.docx
- 文档编号:17666757
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:23
- 大小:198.14KB
MATLAB设计矩阵计算器要点Word下载.docx
《MATLAB设计矩阵计算器要点Word下载.docx》由会员分享,可在线阅读,更多相关《MATLAB设计矩阵计算器要点Word下载.docx(23页珍藏版)》请在冰豆网上搜索。
本矩阵计算器能够实现一些基本的矩阵运算,包括对单个矩阵的运算以及对两个矩阵的运算。
其中,对于两个矩阵的运算有:
加、减、乘、除(左除、右除)、按元素乘、按元素除以及求解线性方程组;
对于単个矩阵的运算有:
转置(共轭与非共轭)、求逆、计算行列式、求秩、平方、立方、开方、求特征值、求2范数、LU分解、最简阶梯阵化简等。
计算过程中,矩阵的输入方式与MATLAB中矩阵输入方式类似。
即①矩阵行中的元素以空格或逗号间隔;
②矩阵行之间以分号间隔;
③整个元素列表用方括号括起来。
2、功能详细描述
2.1矩阵相加(减)
输入A=[123;
456;
789],B=[147;
258;
369],按下“+”按钮,输出区显示计算结果如图2所示:
图2矩阵相加
输入的A、B矩阵必须是维数相同,否则不能实现相加运算。
如输入不同维数的矩阵且进行相加运算,则会提示出错如图3所示:
图3矩阵相加错误提示
两矩阵相减的运算过程与相加运算类似,在此不再赘述。
2.2矩阵相乘
852;
396],按下“*”按钮,输出区显示计算结果如图4所示:
图4矩阵相乘
输入的A、B矩阵必须满足前者的列数等于后者的行数,否则不能实现矩阵的乘法运算,出现错误提示如图5所示:
图5矩阵相乘错误提示
2.3按元素乘(除)
输入同2.2。
按下“.*”按钮,输出区显示计算结果如图6所示:
图6矩阵按元素相乘
输入的A、B矩阵必须是维数相同,否则不能实现按元素乘的运算。
如输入不同维数的矩阵且进行按元素乘的运算,则会提示出错,提示信息同图3。
2.4矩阵左(右)除
输入A=[12;
35],B=[12;
57],按下“/L”按钮,输出区显示计算结果如图7所示:
图7矩阵左除
输入的A、B矩阵必须满足行相等,否则出现错误提示如图8所示:
图8矩阵左除错误提示
2.5矩阵转置(共轭与非共轭)
输入A=[2+
5;
3,7-8
],按下“A’”(共轭转置)与“A.’”按钮(非共轭转置),输出区分别显示计算结果如图9所示:
图9共轭转置(上)与非共轭转置(下)
2.6行列式计算
输入A=[124;
789],按下“det”按钮,输出区显示计算结果如图10所示:
图10方阵求行列式
输入矩阵A必须为方阵,否则无法计算行列式,提示错误如图11所示:
图11求行列式错误提示
2.7矩阵求逆
258],按下“inv”按钮,输出区显示计算结果如图12所示:
图12矩阵求逆
本矩阵计算器求逆功能只针对非奇异方阵,如果输入矩阵A为奇异阵或非方阵,均会提示错误,具体见图13、图14:
图13输入为非方阵时的错误提示
图14输入为奇异阵时的错误提示
2.8线性方程组求解
输入A=[123;
2-53;
3-25](系数矩阵),B=[0;
5;
9](常数项),按下“Ax=B”按钮,输出区显示计算结果如图15所示:
图15线性方程组求解
本部分输入限制较大,须详细说明。
第一,系数矩阵必须是非奇异的方阵,否则方程组解不存在或不唯一,本计算器无法求解。
第二,常数项必须与系数矩阵行数相同,否则也会出现错误提示。
2.9矩阵求秩与最简行阶梯阵化简
输入矩阵A=[123;
456],分别按下“R”、“rref”按钮,输出区显示计算结果如图16所示:
最简行阶梯阵
矩阵的秩
图16矩阵求秩与最简行阶梯阵化简
2.10平方、立方、与开方运算
789],分别按下“^2”、“^3”、“Sqrt”按钮,输出区显示计算结果如图17所示:
图17矩阵平方、立方、与开方运算
2.11矩阵特征值
789],按下“eig”按钮,输出区显示计算结果如图18所示:
图18矩阵特征值求解
2.12LU分解
426],按下“LU”按钮,输出区显示计算结果如图19所示:
图19矩阵LU分解
其中输出区前三行为矩阵L,后三行为矩阵U,即:
L=
0.2500-0.25001.0000
1.000000
1.00001.00000
U=
4.00005.00006.0000
0-3.00000
001.5000
A=L*U.
2.13求矩阵范数
426],按下“Norm”按钮,输出区显示计算结果如图20所示:
图20求矩阵范数
由于设计者能力有限,本计算器默认计算矩阵的2范数,其他范数暂不能计算。
2.14其他运算
设计本部分的目的在于实现功能区中无法一步实现的计算。
比如两矩阵的线性组合(
,其中
均为常数)、矩阵的高次幂(
)等。
具体用法见图21:
图21其他矩阵运算
实现
运算
图21其他矩阵运算
(2)
利用“其他运算”模块对一个矩阵进行操作时,另一个矩阵不能没有输入,因此,假设在操作A矩阵(
),此时B矩阵仍要赋值为空([]),如图所示:
否则无法进行计算。
附录(主要代码):
%%作者:
%%设计时间:
2014年4月26日
%%设计目的:
通过GUI设计矩阵计算器,熟悉MATLAB中GUI工具的使用和编程。
%%加深对MATLABGUI中句柄控制变量的理解。
%%巩固线性代数中矩阵的基本运算。
%%功能简介:
实现一些基本的矩阵运算,包括对单个矩阵的运算以及对两个矩阵的运算。
functionvarargout=Matrix_Calculator(varargin)
gui_Singleton=1;
gui_State=struct('
gui_Name'
mfilename,...
'
gui_Singleton'
gui_Singleton,...
gui_OpeningFcn'
@Matrix_Calculator_OpeningFcn,...
gui_OutputFcn'
@Matrix_Calculator_OutputFcn,...
gui_LayoutFcn'
[],...
gui_Callback'
[]);
ifnargin&
&
ischar(varargin{1})
gui_State.gui_Callback=str2func(varargin{1});
end
ifnargout
[varargout{1:
nargout}]=gui_mainfcn(gui_State,varargin{:
});
else
gui_mainfcn(gui_State,varargin{:
functionMatrix_Calculator_OpeningFcn(hObject,eventdata,handles,varargin)
handles.output=hObject;
guidata(hObject,handles);
functionvarargout=Matrix_Calculator_OutputFcn(hObject,eventdata,handles)
varargout{1}=handles.output;
functionMatrix_A_Callback(hObject,eventdata,handles)
functionMatrix_A_CreateFcn(hObject,eventdata,handles)
ifispc&
isequal(get(hObject,'
BackgroundColor'
),get(0,'
defaultUicontrolBackgroundColor'
))
set(hObject,'
'
white'
);
End
functionMatrix_B_Callback(hObject,eventdata,handles)
functionMatrix_B_CreateFcn(hObject,eventdata,handles)
functionadd_Callback(hObject,eventdata,handles)
A=eval((get(handles.Matrix_A,'
String'
)));
B=eval((get(handles.Matrix_B,'
[iAjA]=size(A);
[iBjB]=size(B);
ifiA~=iB|jA~=jB|(iA~=iB&
jA~=jB)%判断A、B是否满足相加条件
R='
error.Matrixdimensionsmustagree.'
;
set(handles.Answer,'
R)
guidata(hObject,handles);
result=A+B;
R=num2str(result);
functionsubtract_Callback(hObject,eventdata,handles)
jA~=jB)%判断A、B是否满足相减条件
result=A-B;
functiontimes_Callback(hObject,eventdata,handles)
ifjA~=iB%判断A、B是否满足相乘条件
error.Innermatrixdimensionsmustagree.'
result=A*B;
functionL_divide_Callback(hObject,eventdata,handles)
ifiA~=iB%判断A、B是否满足左除条件
result=A\B;
functionR_divide_Callback(hObject,eventdata,handles)
ifiA~=iB%判断A、B是否满足右除条件
result=A/B;
functiontransposition_Callback(hObject,eventdata,handles)
result=A'
;
R=num2str(result);
set(handles.Answer,'
functiondeterminant_Callback(hObject,eventdata,handles)
ifiA~=jA%判断A是否为方阵
error.Matrixmustbesquare.'
result=det(A);
functioninvertor_Callback(hObject,eventdata,handles)
ifdet(A)==0%判断A是否为奇异阵
error.Matrixissingulartoworkingprecision.'
else
result=inv(A);
end
functionrank_Callback(hObject,eventdata,handles)
result=rank(A);
functionsquare_Callback(hObject,eventdata,handles)
error.Inputsmustbeascalarandasquarematrix.'
result=A^2;
functioncube_Callback(hObject,eventdata,handles)
result=A^3;
functiontimes2_Callback(hObject,eventdata,handles)
result=A.*B;
functiondivede2_Callback(hObject,eventdata,handles)
result=A./B;
functiontransposition2_Callback(hObject,eventdata,handles)
result=A.'
functioneigenvalue_Callback(hObject,eventdata,handles)
result=eig(A);
functionsolve_Callback(hObject,eventdata,handles)
ifiA~=iB
error.'
ifiA~=jA%判断A是否为方阵
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 设计 矩阵 计算器 要点