GUI设计在高等数学中的应用Word格式文档下载.docx

上传人:b****5 文档编号:16450759 上传时间:2022-11-23 格式:DOCX 页数:12 大小:292.18KB
下载 相关 举报
GUI设计在高等数学中的应用Word格式文档下载.docx_第1页
第1页 / 共12页
GUI设计在高等数学中的应用Word格式文档下载.docx_第2页
第2页 / 共12页
GUI设计在高等数学中的应用Word格式文档下载.docx_第3页
第3页 / 共12页
GUI设计在高等数学中的应用Word格式文档下载.docx_第4页
第4页 / 共12页
GUI设计在高等数学中的应用Word格式文档下载.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

GUI设计在高等数学中的应用Word格式文档下载.docx

《GUI设计在高等数学中的应用Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《GUI设计在高等数学中的应用Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。

GUI设计在高等数学中的应用Word格式文档下载.docx

●建立2个坐标轴对象,用于显示函数的动态彗星轨迹和函数的极限图形。

●建立2个静态文本标注动态彗星轨迹和函数的极限图形。

●建立3个按钮,用于绘制图形和结束程序。

●分别设置3个按钮的标示为comet_pushbutton,用于绘制函数的动态彗星轨迹曲线。

limit_pushbutton,绘制函数的极限曲线。

close_pushbutton,用于结束程序。

界面设置如图1-1所示。

保存为gui_hanshu.fig文件。

添加菜单,添加绘制图形和关闭图形的命令,如图1_2所示。

建立一级菜单【file】,并设置3个菜单命令【comet】【limit】和【close】它们的tag属性分别设置为comet_menu调用绘制函数的动态彗星轨迹图形功能。

limit_menu,调用绘制函数的极限图像功能。

close_menu,执行关闭图形的功能。

图1_1函数极限可视化布局

图1_2添加菜单

编写代码完成程序中的变量赋值,输出(输入)及绘图等,打开gui_hanshu.m文件,系统自动生成M文件的程序代码如下:

functionvarargout=gui_hanshu(varargin)

gui_Singleton=1;

gui_State=struct('

gui_Name'

mfilename,...

'

gui_Singleton'

gui_Singleton,...

gui_OpeningFcn'

@gui_hanshu_OpeningFcn,...

gui_OutputFcn'

@gui_hanshu_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{:

functiongui_hanshu_OpeningFcn(hObject,eventdata,handles,varargin)

handles.output=hObject;

guidata(hObject,handles);

functionvarargout=gui_hanshu_OutputFcn(hObject,eventdata,handles)

varargout{1}=handles.output;

调用comet_pushbutton_Callback绘制函数

下的动态曲线(彗星轨迹)图形,代码如下:

functioncomet_pushbutton_Callback(hObject,eventdata,handles)

axes(handles.axes1);

x=-700:

0.1:

700;

boxon;

holdon;

axis([-700700-2.41.1]);

comet(x,sin(x)./x);

调用limit_pushbutton_Callback绘制函数

下的静态极限图形,代码如下:

functionlimit_pushbutton_Callback(hObject,eventdata,handles)

axes(handles.axes2);

fplot('

sin(x)./x'

[-100100-0.241.1]);

text(30,0.5,'

);

调用close函数关闭图形退出程序,代码如下:

functionclose_pushbutton_Callback(hObject,eventdata,handles)

close

菜单命令comet_menu调用函数comet_pushbutton_Callback绘制动态曲线,代码如下:

functioncomet_menu_Callback(hObject,eventdata,handles)

comet_pushbutton_Callback(hObject,eventdata,handles);

functionfile_menu_Callback(hObject,eventdata,handles)

菜单命令limit_menu调用函数limit_pushbutton_Callback绘制静态极限图形,代码如下:

functionlimit_menu_Callback(hObject,eventdata,handles)

limit_pushbutton_Callback(hObject,eventdata,handles);

菜单命令close_menu调用close函数关闭图形退出程序,代码如下:

functionclose_menu_Callback(hObject,eventdata,handles)

程序运行后,单击【comet】按钮或选择【comet】菜单命令后,绘制动态曲线(彗星轨迹)图形,如图1_3和图1_4所示

图1_3动态彗星轨道曲线(

图1_4动态彗星轨道曲线(

单击【limit】按钮或选择【limit】菜单命令后绘制静态极限图形,如图1_5所示

图1_5函数静态极限图形

图1_6函数极限可视化

从图1-6可以观察动态曲线图和静态曲线图,当

时,函数的变化趋势都是无限地趋近于0;

时,函数的变化趋势都是无限地趋近于1;

这说明双侧极限存在的充要条件是两个单侧极限存在且相等,双侧极限值等于但侧极限值。

2.多项式的曲线拟合

最佳拟合被解释为在数据点的最小误差平方和,若所用的曲线限定为多项式,那么曲线拟合是相当简捷的,称为多项式的最小二乘曲线拟合。

在MATLAB中使用函数ployfit来进行曲线拟合,调用格式如下:

P=ployfit(x,y,n)

其中x和y表示输入的原始数据,n表示阶次。

为了使用ployfit,必须给函数赋予上面的数据和希望最佳拟合数据的多项式的阶次。

如果选择n=1作为阶次,则得到最简单的线性近似,通常称为线性回归;

相反,如果选择n=2作为阶次,则得到一个二阶多项式。

输入原始数据,对这些数据进行多项式不同阶次得曲线拟合。

●建立一个坐标轴对象,用于显示函数和零点坐标。

●建立4个静态文本框,标注相应的控件的提示和用来显示坐标数值。

●建立2个按钮,用于求函数零点和结束程序。

设置控件的tag属性:

●分别设置两个按钮的tag为polyfit_pushbutton用于曲线拟合,close_pushbutton用于结束程序。

●设置4个可编辑文本框,显示x,y,n和拟合后的系数数据,tag依次设为x_edit,y_edit,n_edit,xishu_edit.

●Tag为x_edit,y_edit,n_edit的可编辑文本框的HorizontalAlignment都设置为left.

添加菜单,用来添加曲线拟合和关闭图形的命令。

建立一级菜单【file】,并且设置菜单命令【polyfit】和【close】.它们的tag分别设置为polyfit_menu调用曲线拟合的函数和close_menu关闭图形的功能。

系统自动生成的M文件打得程序代码如下:

functionvarargout=gui_qx(varargin)

@gui_qx_OpeningFcn,...

@gui_qx_OutputFcn,...

在程序初始化得时候,显示默认想x,y,n的数据,代码如下:

functiongui_qx_OpeningFcn(hObject,eventdata,handles,varargin)

set(handles.x_edit,'

string'

'

00.10.20.30.40.50.60.70.80.91'

set(handles.y_edit,'

0.461.993.276.167.087.347.569.669.459.3411.4'

set(handles.n_edit,'

3'

functionvarargout=gui_qx_OutputFcn(hObject,eventdata,handles)

按钮polyfit_pushbutton调用函数,将x,y,n的字符转化为数据,进行曲线拟合,把拟合后的系数输出在tag为xishu_eidt的编辑文本框中,代码如下:

functionpolyfit_pushbutton_Callback(hObject,eventdata,handles)

x=str2num(get(handles.x_edit,'

));

y=str2num(get(handles.y_edit,'

n=str2num(get(handles.n_edit,'

plot(x,y,'

m:

'

Marker'

o'

holdon

p=polyfit(x,y,n);

yy=polyval(p,x);

plot(x,yy,'

r-'

set(handles.xishu_edit,'

strcat('

p='

num2str(p)));

按钮close_pushbutton调用close函数关闭图形结束程序,代码如下:

菜单polyfit_menu调用polyfit_pushbutton_Callback函数进行曲线拟合,代码如下:

functionpolyfit_menu_Callback(hObject,eventdata,handles)

polyfit_pushbutton_Callback(hObject,eventdata,handles)

按钮close_menu调用close函数关闭图形结束程序,代码如下:

程序运行后,可以使用默认的x,y,n的数据,x=[00.10.20.30.40.50.60.70.80.91];

y=[0.461.993.276.167.087.347.569.669.459.3411.4];

阶数n=3,如图2-1所示。

图2-1初始界面

单击【polyfit】按钮和菜单命令【polyfit】后,进行曲线拟合,如图2-2所示

图2-2曲线拟合

由图2-2可知,拟合后的系数p=[11.8337-25.550124.57930.0995105],

则多项式的表达式y=11.8337x^3-25.5501x^3+24.5793x+0.0995105.

当对x,y,n分别进行改变时,拟合曲线也相应的随之变化,如图2-3所示

图2-3当n=6时的曲线拟合

多项式阶次的选择是任意的。

两点决定一直线或一阶多项式,3点决定一个二阶多项式,n+1数据点唯一的确定n阶多项式此例中的11个数据点可选一个最高为10阶的多项式。

然而,并不是多项式的阶数越高,效果越好。

需要对不同阶数的情况进行比较分析,才能得到较好的多项式拟合效果。

参考文献:

[1]李显宏.MATLAB界面设计与编译技巧.北京:

电子工业出版社,2006.

[2]刘卫国.MATLAB程序设计与应用(第二版).北京:

高等教育出版社,2006

[3]赵书兰.MATLAB图形与动画编程实例案.北京:

化学工业出版社,2009

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 政史地

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1