可视化GUI的矩阵特征值的Jacobi求解Word文档下载推荐.docx
《可视化GUI的矩阵特征值的Jacobi求解Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《可视化GUI的矩阵特征值的Jacobi求解Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。
20分;
(2)完成设计过程:
40分;
(3)完成调试:
(4)回答问题:
5)参考文献:
(1)刘卫国.MATLAB程序设计与应用(第二版).北京:
高等教育出版社,2008.
(2)金一庆、陈越、王冬梅.数值方法(第二版)北京:
机械工业出版社、2000.2
6)课程设计进度安排
内容天数 地点
构思及收集资料2 图书馆
编程设计与调试1 实验室
撰写论文2 图书馆、实验室
学生签名:
2011年6月27日
课程设计(论文)评审意见
(1)完成原理分析(20分):
优( )、良( )、中( )、一般( )、差( );
(2)设计分析 (20分):
(3)完成调试 (20分):
(4)翻译能力 (20分):
(5)回答问题 (20分):
(6)格式规范性及考勤是否降等级:
是( )、否( )
(7)总评分数 优( )、良( )、中( )、一般( )、差( );
评阅人:
职称:
讲师
年月日
1.MATLAB简介与应用.............................4
2.GUI简介与特点................................5
3Jacobi方法简介...............................5
4,Jacobi求解矩阵特征值程序设计.................6
5,GUI中矩阵特征值的Jacobi求解的实现...........9
6,课设学习心得................................11
7,参考文献....................................12
附录:
.........................................13
1.MATLAB简介与应用
MATLAB的简介
MATLAB是矩阵实验室(MatrixLaboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB不仅具备卓越的数值计算能力,还具有专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多.
当前流行的MATLAB7.0/Simulink6.0包括拥有数百个内部函数的主包和三十几种工具包(Toolbox).工具包又可以分为功能性工具包和学科工具包.功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类.
开放性使MATLAB广受用户欢迎.除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包.
MATLAB的应用
MATLAB是当前数值计算方面应用地非常广泛的一种计算机软件。
该软件具有一下几个特点:
(1)该软件语言接近自然语言,极易入门.有其他程序设计语言基础的人士学起来则更为容易;
(2)该软件提供了大量的内部函数.这使得其在使用中非常方便.再则,日益庞大的toolbox使得该软件的应用领域越来越广泛;
(3)该软件语言以向量、矩阵为着眼点,这使得它特别适宜于数值分析;
(4)绘图功能强大。
由于上述原因,MATLAB在世界范围内很是流行,特别是在工程计算领域.近年来越来越多的国人也喜爱上了这一套软件.MATLAB的toolbox中也含有概率统计方面的库函数.概率方面的库函数主要有各种常见分布的分布函数、概率密度、分布率以及生成服从各种分布随机数的函数.
2.GUI简介与特点
GUI简介:
GUI是GraphicalUserInterface的简称,即图形用户界面,通常人机交互图形化用户界面设计经常读做“goo-ee”,准确来说GUI就是屏幕产品的视觉体验和互动操作部分。
GUI是一种结合计算机科学、美学、心理学、行为学,及各商业领域需求分析的人机系统工程,强调人—机—环境三者作为一个系统进行总体设计。
这种面向客户的系统工程设计其目的是优化产品的性能,使操作更人性化,减轻使用者的认知负担,使其更适合用户的操作需求,直接提升产品的市场竞争力。
GUI即人机交互图形化用户界面设计。
纵观国际相关产业在图形化用户界面设计方面的发展现状,许多国际知名公司早已意识到GUI在产品方面产生的强大增值功能,以及带动的巨大市场价值,因此在公司内部设立了相关部门专门从事GUI的研究与设计,同业间也成立了若干机构,以互相交流GUI设计理论与经验为目的。
随着中国IT产业,移动通讯产业,家电产业的迅猛发展,在产品的人机交互界面设计水平发展上日显滞后,这对于提高产业综合素质,提升与国际同等业者的竞争能力等等方面无疑起了制约的作用。
GUI特点:
GUI的广泛应用是当今计算机发展的重大成就之一,他极大地方便了非专业用户的使用人们从此不再需要死记硬背大量的命令,取而代之的是可以通过窗口、菜单、按键等方式来方便地进行操作。
而嵌入式GUI具有下面几个方面的基本要求:
轻型、占用资源少、高性能、高可靠性、便于移植、可配置等特点。
3Jacobi方法简介
一,jacobi迭代原理
将方程组Ax=b(设
)化成等价方程组:
采用迭代格式:
二,jacobi迭代特点
1,迭代程序简单
2,每迭代一次只需计算一次矩阵和向量的乘法
3,占用(N+1)N个单元存放矩阵和常向量,占用两组工作单元X^(k)和X^(k+1).
4,存在收敛性问题
4,Jacobi求解矩阵特征值程序设计
functionD=Untitled2(A)
A=input('
输入矩阵'
)
i=1;
D=A;
[n,n]=size(A);
flag=1;
%设定标志位
E=abs(D-diag(diag(D)));
%E是第n次迭代以后矩阵除去对角元的矩阵
[m1,p]=max(E);
%寻找矩阵E中最大元
[m2,q]=max(m1);
p=p(q);
ifp==q%处理矩阵本身就是一个对角阵的特殊情况
D=diag(D);
else
while(flag==1)
y=abs(D(q,q)-D(p,p));
ify==0%处理D(p,p)=D(q,q)的特殊情况
x=2*D(p,q);
c=sin(pi/4);
s=sign(x)*c;
else
x=sign(D(p,p)-D(q,q))*2*D(p,q);
c=sqrt((1+y/(sqrt(x^2+y^2)))/2);
s=x/(2*c*(sqrt(x^2+y^2)));
end
G=eye(n);
G(p,p)=c;
%利用cos和sin的值来构造Givens变换阵
G(q,q)=c;
G(p,q)=s;
G(q,p)=-s;
D=G*D;
D=D*G'
;
E=abs(D-diag(diag(D)));
[m1p]=max(abs(D-diag(diag(D))));
[m2q]=max(m1);
p=p(q);
k(i)=i;
temp=sqrt(sum(sum(E.^2)));
r(i)=temp;
i=i+1;
if(temp<
eps)
flag=0;
end
5,GUI中矩阵特征值的Jacobi求解的实现
加底色运行结果:
6,课设学习心得
通过此次课设的制作,让我对matlab的矩阵特征值的Jacobi求解以及GUI的设计有了更熟练的掌握,同时充分锻炼了自己独立思考的能力,此次课设也遇到很多问题,1,首先是GUI知识掌握不够,所以我用一天时间专心研究了课本的相关知识,并将课本例题做了出来,熟练了GUI操作,2,matlab的矩阵特征值的Jacobi求解也通过看书以及上网查有关资料来完成代码编辑。
3,最难的一步是GUI中如何把输入数据转换成字符串,这也难了我好多天,但我在网上搜集了相关资料,最后实现了此功能。
此次课设增强了我的matlab实际操纵能力,也让我跟熟练的掌握了相关知识。
7,参考文献
functionvarargout=untitled4(varargin)
%UNTITLED4M-fileforuntitled4.fig
%UNTITLED4,byitself,createsanewUNTITLED4orraisestheexisting
%singleton*.
%
%H=UNTITLED4returnsthehandletoanewUNTITLED4orthehandleto
%theexistingsingleton*.
%UNTITLED4('
CALLBACK'
hObject,eventData,handles,...)callsthelocal
%functionnamedCALLBACKinUNTITLED4.Mwiththegiveninputarguments.
Property'
'
Value'
...)createsanewUNTITLED4orraisesthe
%existingsingleton*.Startingfromtheleft,propertyvaluepairsare
%appliedtotheGUIbeforeuntitled4_OpeningFunctiongetscalled.An
%unrecognizedpropertynameorinvalidvaluemakespropertyapplication
%stop.Allinputsarepassedtountitled4_OpeningFcnviavarargin.
%*SeeGUIOptionsonGUIDE'
sToolsmenu.Choose"
GUIallowsonlyone
%instancetorun(singleton)"
.
%Seealso:
GUIDE,GUIDATA,GUIHANDLES
%Copyright2002-2003TheMathWorks,Inc.
%Edittheabovetexttomodifytheresponsetohelpuntitled4
%LastModifiedbyGUIDEv2.527-Jun-201113:
15:
36
%Begininitializationcode-DONOTEDIT
gui_Singleton=1;
gui_State=struct('
gui_Name'
mfilename,...
'
gui_Singleton'
gui_Singleton,...
gui_OpeningFcn'
@untitled4_OpeningFcn,...
gui_OutputFcn'
@untitled4_OutputFcn,...
gui_LayoutFcn'
[],...
gui_Callback'
[]);
ifnargin&
&
ischar(varargin{1})
gui_State.gui_Callback=str2func(varargin{1});
ifnargout
[varargout{1:
nargout}]=gui_mainfcn(gui_State,varargin{:
});
gui_mainfcn(gui_State,varargin{:
%Endinitializationcode-DONOTEDIT
%---Executesjustbeforeuntitled4ismadevisible.
functionuntitled4_OpeningFcn(hObject,eventdata,handles,varargin)
%Thisfunctionhasnooutputargs,seeOutputFcn.
%hObjecthandletofigure
%eventdatareserved-tobedefinedinafutureversionofMATLAB
%handlesstructurewithhandlesanduserdata(seeGUIDATA)
%varargincommandlineargumentstountitled4(seeVARARGIN)
%Choosedefaultcommandlineoutputforuntitled4
handles.output=hObject;
%Updatehandlesstructure
guidata(hObject,handles);
%UIWAITmakesuntitled4waitforuserresponse(seeUIRESUME)
%uiwait(handles.figure1);
%---Outputsfromthisfunctionarereturnedtothecommandline.
functionvarargout=untitled4_OutputFcn(hObject,eventdata,handles)
%varargoutcellarrayforreturningoutputargs(seeVARARGOUT);
%Getdefaultcommandlineoutputfromhandlesstructure
varargout{1}=handles.output;
%---Executesonbuttonpressinpushbutton1.
functionpushbutton1_Callback(hObject,eventdata,handles)
A=str2num(get(handles.edit1,'
string'
));
D=Jacobi(A)
set(handles.edit2,'
D);
%hObjecthandletopushbutton1(seeGCBO)
%---Executesonbuttonpressinpushbutton2.
functionpushbutton2_Callback(hObject,eventdata,handles)
%hObjecthandletopushbutton2(seeGCBO)
result=questdlg('
AreYouSure?
'
AskYourself'
YES'
NO'
);
ifresult=='
close(gcf);
functionedit1_Callback(hObject,eventdata,handles)
%hObjecthandletoedit1(seeGCBO)
%Hints:
get(hObject,'
String'
)returnscontentsofedit1astext
%str2double(get(hObject,'
))returnscontentsofedit1asadouble
%---Executesduringobjectcreation,aftersettingallproperties.
functionedit1_CreateFcn(hObject,eventdata,handles)
%handlesempty-handlesnotcreateduntilafterallCreateFcnscalled
%Hint:
editcontrolsusuallyhaveawhitebackgroundonWindows.
%SeeISPCandCOMPUTER.
ifispc
set(hObject,'
BackgroundColor'
white'
get(0,'
defaultUicontrolBackgroundColor'
functionedit2_Callback(hObject,eventdata,handles)
%hObjecthandletoedit2(seeGCBO)
)returnscontentsofedit2astext
))returnscontentsofedit2asadouble
functionedit2_CreateFcn(hObject,eventdata,handles)
functionD=Jacobi1(A)
%
ifp==q%
y=abs(D(q,q)-