基于MATLAB的雅克比与高斯-赛德尔迭代法的求解方程组GUI计算界面(基于MATLAB的雅克比与高斯-赛德尔迭代法的求解方程组GUI计算界面)
基于MATLAB的雅克比与高斯-赛德尔迭代法的求解方程组GUI计算界面(基于MATLAB的雅克比与高斯-赛德尔迭代法的求解方程组GUI计算界面)Step1:输入系数矩阵A、系数矩阵b、初始点、精度、最大迭代次数等1.实例求解前面介绍过直接法求解线性方程组,今天主要是将两种迭代法雅克比迭代法与高斯-赛德尔迭代法求解。本人基于MATLAB的GUI界面设计了一个雅克比迭代法与高斯-赛德尔迭代法求解方程计算,能够实现雅克比迭代法与高斯-赛德尔迭代法求解方程的功能,具体的界面如下:在文本框内输入矩阵A和矩阵b(行向量)的数据、初始点x0(行向量)、精度和最大迭代次数——点击雅克比迭代法求解按键和高斯-赛德尔迭代法求解按键——出现结果显示——点击清除可以清除输入——点击关闭可以关闭当前的GUI界面。需要基于MATLAB的雅克比与高斯-赛德尔迭代法的求解方程组GUI计算界面完整GUI程序,可以进行打赏后截图(30元及以上),进行联系,或者在微信公众号云龙派点击"联系掌门"进行联系,或者在公众号内回复截图 几小时内会回复。界面编程
MATLAB线性方程组的求解及应用,非齐次线性方程组是数学方程组的一种,它符合以下的形式:
如果用线性代数中的概念来表达,则线性方程组可以写成:
Ax= b
这里的A是m×n 矩阵,x是含有n个元素列向量,b是含有m 个元素列向量。
前面介绍过直接法求解线性方程组,今天主要是将两种迭代法雅克比迭代法与高斯-赛德尔迭代法求解。
本人基于MATLAB的GUI界面设计了一个雅克比迭代法与高斯-赛德尔迭代法求解方程计算,能够实现雅克比迭代法与高斯-赛德尔迭代法求解方程的功能,具体的界面如下:
在文本框内输入矩阵A和矩阵b(行向量)的数据、初始点x0(行向量)、精度和最大迭代次数——点击雅克比迭代法求解按键和高斯-赛德尔迭代法求解按键——出现结果显示——点击清除可以清除输入——点击关闭可以关闭当前的GUI界面。需要基于MATLAB的雅克比与高斯-赛德尔迭代法的求解方程组GUI计算界面完整GUI程序,可以进行打赏后截图(30元及以上),进行联系,或者在微信公众号云龙派点击"联系掌门"进行联系,或者在公众号内回复截图 几小时内会回复。界面编程不易,还请见谅!
1.实例求解
Step1:输入系数矩阵A、系数矩阵b、初始点、精度、最大迭代次数等
参数。
Step2:点击雅克比迭代法求解按键。
Step2:点击雅克比迭代法求解按键。
Step3:点击高斯-赛德尔迭代法求解按键。
Step4:点击清除按键。
高斯-赛德尔迭代法收敛速度比雅克比迭代法要快一些,可以修改最大
迭代次数进行比较。
最大迭代次数20
2.GUI部分程序如下
function varargout = yakebi(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name' mfilename ...
'gui_Singleton' gui_Singleton ...
'gui_OpeningFcn' @yakebi_OpeningFcn ...
'gui_OutputFcn' @yakebi_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
function yakebi_OpeningFcn(hObject eventdata handles varargin)
handles.output = hObject;
movegui(gcf 'center');
%关闭窗口的名字 修改为其他名字
set(gcf 'NumberTitle' 'off' 'Name' '雅克比迭代法与高斯-赛德尔迭代法计算GUI系统');
% Update handles structure
guidata(hObject handles);
% --- Outputs from this function are returned to the command line.
function varargout = yakebi_OutputFcn(hObject eventdata handles)
varargout{1} = handles.output;
function edit1_Callback(hObject eventdata handles)
if ispc && isequal(get(hObject 'BackgroundColor') get(0 'defaultUicontrolBackgroundColor'))
set(hObject 'BackgroundColor' 'white');
end
function edit2_Callback(hObject eventdata handles)
function edit2_CreateFcn(hObject eventdata handles)
if ispc && isequal(get(hObject 'BackgroundColor') get(0 'defaultUicontrolBackgroundColor'))
set(hObject 'BackgroundColor' 'white');
end
function edit3_Callback(hObject eventdata handles)
function edit3_CreateFcn(hObject eventdata handles)
if ispc && isequal(get(hObject 'BackgroundColor') get(0 'defaultUicontrolBackgroundColor'))
set(hObject 'BackgroundColor' 'white');
end
function edit4_Callback(hObject eventdata handles)
function edit4_CreateFcn(hObject eventdata handles)
if ispc && isequal(get(hObject 'BackgroundColor') get(0 'defaultUicontrolBackgroundColor'))
set(hObject 'BackgroundColor' 'white');
end
function edit5_Callback(hObject eventdata handles)
function edit5_CreateFcn(hObject eventdata handles)
if ispc && isequal(get(hObject 'BackgroundColor') get(0 'defaultUicontrolBackgroundColor'))
set(hObject 'BackgroundColor' 'white');
end
function edit6_Callback(hObject eventdata handles)
% --- Executes during object creation after setting all properties.
function edit6_CreateFcn(hObject eventdata handles)
if ispc && isequal(get(hObject 'BackgroundColor') get(0 'defaultUicontrolBackgroundColor'))
set(hObject 'BackgroundColor' 'white');
end
function edit7_Callback(hObject eventdata handles)
% --- Executes during object creation after setting all properties.
function edit7_CreateFcn(hObject eventdata handles)
if ispc && isequal(get(hObject 'BackgroundColor') get(0 'defaultUicontrolBackgroundColor'))
set(hObject 'BackgroundColor' 'white');
end
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject eventdata handles)
A = str2num(get(handles.edit1 'string'));
b = str2num(get(handles.edit2 'string'));
x0 = str2num(get(handles.edit3 'string'));
eps = str2num(get(handles.edit4 'string'));
max_n = str2num(get(handles.edit5 'string'));
x = jacobi(A b' x0' eps max_n);
set(handles.edit6 'string' num2str(x'));
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject eventdata handles)
set(handles.edit1 'string' '');
set(handles.edit2 'string' '');
set(handles.edit3 'string' '');
set(handles.edit4 'string' '');
set(handles.edit5 'string' '');
set(handles.edit6 'string' '');
set(handles.edit7 'string' '');
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject eventdata handles)
closereq;
% --- Executes on button press in pushbutton4.
function pushbutton4_Callback(hObject eventdata handles)
% hObject handle to pushbutton4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
A = str2num(get(handles.edit1 'string'));
b = str2num(get(handles.edit2 'string'));
x0 = str2num(get(handles.edit3 'string'));
eps = str2num(get(handles.edit4 'string'));
max_n = str2num(get(handles.edit5 'string'));
x_result = Gauss(A b' x0' eps max_n );
set(handles.edit7 'string' num2str(x_result'));
本文内容来源于网络,仅供参考学习,如内容、图片有任何版权问题,请联系处理,24小时内删除。
作 者 | 郭志龙
编 辑 | 郭志龙
校 对 | 郭志龙