数值分析课程设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

附录:
function varargout = untitled4(varargin)
% UNTITLED4 M-file for untitled4.fig % % % % % % % % arguments. % % % % % % % % % % % See also: GUIDE, GUIDATA, GUIHANDLES *See GUI Options on GUIDE's Tools menu. instance to run (singleton)". Choose "GUI allows only one UNTITLED4('Property','Value',...) creates a new UNTITLED4 or raises the existing singleton*. Starting from the left, property value pairs are applied to the GUI before untitled4_OpeningFunction gets called. An unrecognized property name or invalid value makes property application stop. All inputs are passed to untitled4_OpeningFcn via varargin. UNTITLED4('CALLBACK',hObject,eventData,handles,...) calls the local function named CALLBACK in UNTITLED4.M with the given input H = UNTITLED4 returns the handle to a new UNTITLED4 or the handle to the existing singleton*. UNTITLED4, by itself, creates a new UNTITLED4 or raises the existing singleton*.
i 1,2, n
1,迭代程序简单 2,每迭代一次只需计算一次矩阵和向量的乘法 3, 占用 (N+1) N 个单元存放矩阵和常向量, 占用两组工作单元 X^(k) 和 X^(k+1). 4,存在收敛性问题
GUI 的广泛应用是当今计算机发展的重大成就之一,他极大地方便了非专业 用户的使用人们从此不再需要死记硬背大量的命令, 取而代之的是可以通过窗口、 菜单、 按键等方式来方便地进行操作。 而嵌入式 GUI 具有下面几个方面的基本要 求:轻型、占用资源少、高性能、高可靠性、便于移植、可配置等特点。
% eventdata % handles
ห้องสมุดไป่ตู้
reserved - to be defined in a future version of MATLAB structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure varargout{1} = handles.output; % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) A=str2num(get(handles.edit1,'string')); D=Jacobi(A) set(handles.edit2,'string',D); % hObject % eventdata % handles handle to pushbutton1 (see GCBO) reserved - to be defined in a future version of MATLAB structure with handles and user data (see GUIDATA)
% Copyright 2002-2003 The MathWorks, Inc.
% Edit the above text to modify the response to help untitled4
% Last Modified by GUIDE v2.5 27-Jun-2011 13:15:36
function untitled4_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject % eventdata % handles % varargin handle to figure reserved - to be defined in a future version of MATLAB structure with handles and user data (see GUIDATA) command line arguments to untitled4 (see VARARGIN)
% Begin initialization code - DO NOT EDIT 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', if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end []);
if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:});
end % End initialization code - DO NOT EDIT % --- Executes just before untitled4 is made visible.
华 北 水 利 水 电 学 院




计 划 书
2012 — 2013 学年 第 一 学期
环 节 名 称: 学生专业班级: 姓 教 研 名: 室:
数值分析课程设计 146 班 胡 迪 信息与计算科学
数值分析课程设计
题目: 矩阵特征值 摘要:本实验采用 Jacobi 迭代原理、幂法和反幂法来求解矩阵特征值。
% Choose default command line output for untitled4
handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes untitled4 wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line.
G=eye(n); G(p,p)=c; G(q,q)=c; G(p,q)=s; G(q,p)=-s; D=G*D; D=D*G'; E=abs(D-diag(diag(D))); [m1 p]=max(abs(D-diag(diag(D)))); [m2 q]=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 end D=diag(D); end %利用 cos 和 sin 的值来构造 Givens 变换阵
function varargout = untitled4_OutputFcn(hObject, eventdata, handles) % varargout % hObject cell array for returning output args (see VARARGOUT); handle to figure
% --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) % hObject % eventdata % handles handle to pushbutton2 (see GCBO) reserved - to be defined in a future version of MATLAB structure with handles and user data (see GUIDATA)
result=questdlg('Are You Sure?','Ask Yourself','YES','NO','NO'); if result=='YES', close(gcf); end function edit1_Callback(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO)
程序代码(Jacobi 求解矩阵特征值)
function D=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); [m2,q]=max(m1); p=p(q); if p==q 殊情况 D=diag(D); else while(flag==1) y=abs(D(q,q)-D(p,p)); if y==0 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 % 处理 D(p,p)=D(q,q)的特殊情况 % 处理矩阵本身就是一个对角阵的特 % 寻找矩阵 E 中最大元
实验验证
成果亮点
通过此次课设的制作, 让我对 matlab 的矩阵特征值的 Jacobi 求 解以及 GUI 的设计有了更熟练的掌握, 同时充分锻炼了自己独立思考 的能力,此次课设也遇到很多问题,1,首先是 GUI 知识掌握不够, 所以我用一天时间专心研究了课本的相关知识, 并将课本例题做了出 来,熟练了 GUI 操作,2,matlab 的矩阵特征值的 Jacobi 求解也通过 看书以及上网查有关资料来完成代码编辑。3,最难的一步是 GUI 中 如何把输入数据转换成字符串,这也难了我好多天,但我在网上搜集 了相关资料,最后实现了此功能。此次课设增强了我的 matlab 实际 操纵能力,也让我跟熟练的掌握了相关知识。
理论基础(Jacobi)
将方程组 Ax=b(设 a n 0; i 1,2 , n )化成等价方程组:
xi
1 (bi a i j x j ) a ii j i
(i 1,2 , n)
采用迭代格式:
xik 1
1 a ii
bi a ij x k j j 1
相关文档
最新文档