MATLAB动态演示系统数分知识点编写.docx
《MATLAB动态演示系统数分知识点编写.docx》由会员分享,可在线阅读,更多相关《MATLAB动态演示系统数分知识点编写.docx(55页珍藏版)》请在冰豆网上搜索。
MATLAB动态演示系统数分知识点编写
数学分析第二版上册
主要范围:
第2章:
连续,一致连续,导数(包括切线),微分相关方程动态化。
第5章:
定理和概念,函数升降,极大与极小,最大与最小,凹凸函数
第6章:
不定积分
具体知识点和案例:
案例一:
知识点1:
函数在
点连续的定义若函数
在
点的附近包括
本身有定义,并且
我们称
在
点连续。
也可以写成:
对任意
,总
,当
时有
总的来说,函数在点
连续的要求有以下三点
(1)
在点
有定义
(2)
在点
的极限存在
(3)
以上三个条件一条不满足,
在点
就不连续
Matlab案例:
p78例2
题目:
在任意一点
连续,则在
内连续
解析:
对任意小的数
>0,取
min(
),当
时,有
,画动态图过程中,给定任意的一组
定值,可以实现定值重置,画不同参数的连续函数演变图。
代码:
%A=input('pleaseenterx0,ibuxinuo:
');
%x0=A
(1);ibuxinuo=A
(2);
%x0和ibuxinuo可以当参数输入,这里取值1,1
x0=1;ibuxinuo=1;
%set(gca,'nextplot','replacechildren');
a=ibuxinuo/(2*abs(x0)+1);%此公式为课本里的证明过程中的出现
sigma=min(a,1);
axis([-x0,x0,-10,10])
axisequal
fork=1:
20
foru=linspace(-(k-1)*x0,k*x0,200)
t=u;
y=u.^2+(2*abs(u)+1)*ibuxinuo;
plot(u,y)
holdon
axisequal
end
M(k)=getframe;
end
结果好坏及优缺点:
优点:
可以观察
=1附近是否连续。
缺点:
由于点过多,运行较慢,但点过少,点出现快,动态不怎么的明显,故要注意范围内的取点数。
令一种代码:
fig=figure
(1);
axis([-5,5,-1,20]);
holdon
set(fig,'color',[00.30.3]);
fill([-5,20,20,-5],[-5,-1,5,30],[0052]);
x=linspace(-5,5);
y1=x.^2;
plot(x,y1,'r');
y11=0:
0.01:
20;
plot(0,y11,'w');
x12=-5:
0.01:
5;
plot(x12,0,'w');
xlabel('可见,由质点的走势来看,在区间内的每一个x0处,函数都是连续的呢!
','color','w');
title('函数在某点处连续的动态演示','backgroundcolor','b','Fontsize',12,'color','y');
%plotyy(x,y1,x,y1,'plot','stem');
gridon
a1=line(-4,16,'marker','.','erasemode','xor','color','b','markersize',50);
t=-4;
dt=0.001;
whilet<5
t=t+dt;
y=t.^2;
set(a1,'xdata',t,'ydata',y)
drawnow;
end
a2=line(-4.1,4.1^2,'marker','.','erasemode','xor','color','k','markersize',40);
a3=line(4.1,4.1^2,'marker','.','erasemode','xor','color','k','markersize',40);
结果:
对比下来,第二种更好一点,但没了中间的变量输入,不过这个讨论后可以解决的。
知识点2:
定理1:
若
,
都在点
连续,则
,
,
也在点
连续,特别,商的情况,
过程:
下面以
=
,
为例子来验证其过程
Matlab案例:
p78定理1
解析:
为了让同学们清楚的了解合函数也是连续的,我们先在一个画图框里画出两个连续的函数,再新建一个对话框,看合函数是否有断点。
另一种思路,让同学自己输入两个连续的函数,让他们来自己验证,个人觉得这种好一些,或者可以在系统同一个page里面出现两种模式,
这里我只画出图,界面设计靠刘哥来完成了!
!
代码:
fig=figure
(1);
set(fig,'position',[256,198,650,490],'name','连续函数判断范例','color',[00.30.5]);%设置窗口大小为650X490
axes_h1=axes('position',[0.050.050.60.6]);
%axes_h2=axes('position',[0.050.40.40.25]);
%axes_h3=axes('position',[0.550.40.40.25]);
set(gcf,'currentaxes',axes_h1);%插入子画图窗口
axis([-88-1.51.5]);
%holdon
fill([-8,8,8,-8],[-8,-8,8,8],[0,1,5,2]);
gridon
%set(gcf,'currentaxes',axes_h2);
%gridon
%set(gcf,'currentaxes',axes_h3);
%gridon
edit1=uicontrol(fig,'style','edit','position',[16945012030],...
'string','linspace(0,2*pi)','fontsize',10,'backgroundcolor','y');
edit2=uicontrol(fig,'style','edit','position',[31045012030],...
'string','sin(linspace(0,2*pi))','fontsize',10,'backgroundcolor','y');
edit3=uicontrol(fig,'style','edit','position',[16940012030],...
'string','linspace(0,2*pi)','fontsize',8,'backgroundcolor','y');
edit4=uicontrol(fig,'style','edit','position',[31040012030],...
'string','cos(linspace(0,2*pi))','fontsize',8,'backgroundcolor','y');
uicontrol(fig,'style','text','position',[1345013030],...
'string','例子g(x)','fontsize',10,'backgroundcolor','y');
uicontrol(fig,'style','text','position',[1340013040],...
'string','现在,你可以输入函数f(x)','fontsize',10,'backgroundcolor','y');
uicontrol(fig,'style','push','position',[50045010030],...
'string','plot(g(x))','fontsize',10,'backgroundcolor','y','callback',...
['x=eval(get(edit1,''string''));'...
'y=eval(get(edit2,''string''));'...
'comet(x,y,0.1)']);
uicontrol(fig,'style','push','position',[50040010030],...
'string','plot(f(x))','fontsize',10,'backgroundcolor','y','callback',...
['x=eval(get(edit3,''string''));'...
'y=eval(get(edit4,''string''));'...
'comet(x,y,0.1)']);
uicontrol(fig,'style','push','position',[1335010030],...
'string','plot(g(x)*f(x))','fontsize',10,'backgroundcolor','y','callback',...
['x=eval(get(edit1,''string''));'...
'y=eval(get(edit2,''string'')).*eval(get(edit4,''string''));'...
'comet(x,y,0.1)']);
uicontrol(fig,'style','push','position',[16935010030],...
'string','plot(g(x)-f(x))','fontsize',10,'backgroundcolor','y','callback',...
['x=eval(get(edit1,''string''));'...
'y=eval(get(edit2,''string''))-eval(get(edit4,''string''));'...
'comet(x,y,0.1)']);
uicontrol(fig,'style','push','position',[31035010030],...
'string','plot(g(x)/f(x))','fontsize',10,'backgroundcolor','y','callback',...
['x=eval(get(edit1,''string''));'...
'y=eval(get(edit2,''string''))./eval(get(edit4,''string''));'...
'plot(x,y,''linewidth'',2)']);
uicontrol(fig,'style','text','position',[45028190280],...
'string','点播:
通过图形对比,你可以清楚的明白和记住两个连续函数经过加减,乘除以后的函数仍然是连续的,具有普遍性,这里只是例子特殊化',...
'fontsize',14,'backgroundcolor','y');
结果:
优点:
可以输入函数的自变量范围和函数式,然后画图进行对比,直观明白
缺点:
未能实现动画,实在可惜,本人的想法是三个图进行比较,但如何转换函数字符并画到指定的axes里面,还有点不清楚,望多加改善
知识点3p823幂函数的连续性
过程:
在这,我们用课本上的例子,
解析:
,由
和
的连续及复合函数的连续性定理知道,
在
内连续,当
在
的范围中时,只有当
是整数时,
才有定义,这时由
的奇偶性,可得
在
内也连续。
画图过程中,用户可以输入
的值,但当
是负数的时候
要是整数,用户可以自己选择是单独在在正域,和负域画,也可以在实域内画图,观察其结果,便于更清楚的了解幂函数的连续性。
代码:
a=input('请输入参数a:
');%只需要输入参数a值
x1=linspace(-5,0,10000);
x2=linspace(0,5,10000);
x3=linspace(-5,5,10000);
fig=figure
(1);
%title('幂函数的连续性的动态演示!
','backgroundcolor','y','color','b');
set(fig,'position',[50,50,500,460],'color',[00.30.4]);
axes_h=axes('position',[0.1,0.1,0.6,0.7]);
set(gcf,'currentaxes',axes_h);
ifround(a)==a&a>1
y1=x1.^a;
y2=x2.^a;
y3=x3.^a;
comet(x1,y1,0.1)
comet(x2,y2,0.1)
comet(x3,y3,0.1)
plot(x3,y3)
holdon
elseifround(a)~=a
disp('请输入幂函数的次方a:
')
end
end
uicontrol('style','text','position',[370150100150],'string','可见,函数在负数域和正数域连续,在实数范围内也连续!
','fontsize',12);
title('幂函数的连续性','backgroundcolor','y','color','b');
xlabel('x=[-5,5]','color','w');
ylabel('y=x.^a','color','w');
结果:
优点:
能正确的完成连续函数的演示
缺点:
由于画图的局限,所以定义域不可能取到实数
知识点4不连续点的类型p84
1.第一类不连续点
特点:
点左右极限存在,但不相等。
2.第二类不连续点
特点:
点左右极限至少有一个不存在。
3.可移不连续点
特点:
点极限存在,但它不等于
或
在点
没有定义。
解析:
阶段性画图,找出间断点,并判断是什么点。
代码:
可移不连续点:
这里不画
的图了,因为0点是其的具体化,已经举过例子。
fig=figure
(1);
set(fig,'menubar','none','color',[00.40.3]);
axis([-2*pi,2*pi,-1.3,1.3]);
holdon
fill([-2*pi2*pi2*pi-2*pi],[-2*pi-2*pi2*pi2*pi],[0152]);
xlabel('x=(-\pi/2,\pi/2)','color','w');
ylabel('y=x./tan(x)','color','w');
title('可移不连续点的演示','color','w');
x=linspace(0,pi,10000);%可以让用户输入的
y=x./tan(x);
comet(x,y,0.07);
plot(x,y,'*r')
holdon
t=linspace(-pi,0,10000);%可以让用户输入的
y1=t./tan(t);
comet(t,y1,0.07);
plot(t,y1,'y');
holdon
x1=0;
y11=x1./tan(x1);%可以让用户输入检验f(x=0)这个点到底存不存在
plot(x1,y11,'.r','markersize',20)%不存在,画不出来
plot(0,1,'.k','markersize',40)%做对比
gridon
h=legend('(0,\pi/2)','(-\pi/2,0)',2);
set(h,'linewidth',2.5);
text(0+0.5,1,'\leftarrow(0,1)可移不连续点','fontsize',14);
str
(1)={'当x=0时,分子分母都等于0,'};
str
(2)={'f(x)不存在,而limx/tan(x)=1,在'};
str(3)={'x->0的情况下'};
uicontrol('style','text','position',[8080120160],'string',str,'fontsize',12,'backgroundcolor','y');
结果:
优点:
基本能表达意思。
缺点:
是用了举例的方法来证明,理论上没有一般性,但只是让同学能理解这个知识点,这个例子已经足够了,如果可以,可以让用户自己输入定义域,只要一个edit输入按钮就行。
第二类连续点:
代码:
fig=figure
(1);
set(fig,'menubar','none','color',[00.40.3]);
axis([-2*pi,2*pi,-3*10^16,3*10^16]);
holdon
fill([-2*pi*10^162*pi*10^162*pi*10^16-2*pi*10^16],[-2*pi*10^16-2*pi*10^162*pi*10^162*pi*10^16],[0152]);
xlabel('x=-\pi,\pi','color','w');
ylabel('y=x./tan(x)','color','w');
title('第二类间断点演示','color','w');
symsxy;
y=x./tan(x);
h1=limit(y,x,pi,'right');
h2=limit(y,x,pi,'left');
disp('右极限为:
');h1
disp('左极限为:
');h2
ifh1~=h2
disp('左右极限不相等,极限不存在');
end
t=linspace(-pi,pi,1000);
y1=t./tan(t);
comet(t,y1,0.05);
plot(t,y1,'.r','markersize',11);
h=legend('\pi',2);
uicontrol('style','text','position',[160240230130],...
'string','x=nπ(n=±1,±2,...)为第二类不连续点的例子具体化,这里取了两个例子,π和-π所对应的值不连续,并且π点的左极限为:
h2=-Inf,右极限为:
h1=Inf',...
'fontsize',12,'backgroundcolor','y');
结果:
右极限为:
h1=Inf左极限为:
h2=-Inf
评价:
只用了两个点来说明,是有点局限,但依然可以用输入框来实现多个输入。
知识点5p85性质1和性质2:
闭区间
上的连续函数
,必在
上有界。
解析:
画图过程中,找出上下那两条不能超越的界线,再给用户出去不同的定义域,看能不能超越,如果任意区间都类似的话,说明性质正确。
代码:
h=figure
(1);
set(h,'color',[00.30.4])
axis([-8,8,-2,2]);
holdon
fill([-8,8,8,-8],[-8,-8,8,8],[0,1,5,2]);
xlabel('-2\pi≤x≤2\pi','color','w'),ylabel('y=sin(x)*cos(1/x)','color','w');
title('闭区间上的连续函数,必在区间上有界','color','w');
x=linspace(-2*pi,2*pi,10000);%最好可以让用户自己输入定义域和函数
y=sin(x).*cos(1./x);
comet(x,y,0.05);
plot(x,y,'b');
data_min=find(min(y)==y);
data_max=find(max(y)==y);%找出最大最小值
a1=line([-2*pi;-2*pi],[y(data_min);y(data_min)],'color','k','linestyle','-','linewidth',2);
a2=line([-2*pi;-2*pi],[y(data_max);y(data_max)],'color','k','linestyle','-','linewidth',2);
t=0;dt=0.1;
whilet<10
t=t+dt;
set(a1,'xdata',[-2*pi+t;-1.5*pi+t],'ydata',[y(data_min);y(data_min)]);
drawnow;
end
pause
(1)
plot(x,y(data_min),'-o','markersize',2,'markerFaceColor','b');
pause
(1)
plot(x(data_min),y(data_min),'s','markersize',10,'markerFaceColor','r');
pause
(1)
text(x(data_min)-0.4,y(data_min)+0.07,sprintf('最小值=%2.4f',y(data_min)),'VerticalAlignment',...
'bottom','HorizontalAlignment','Right','fontsize',12,'backgroundcolor','y');
pause
(1)
text(-6,-0.81,'\downarrow下界','backgroundcolor','y');
pause
(1)
t1=0;dt1=1;
whilet1<10
t1=t1+dt1;
set(a2,'xdata',[-2*pi+t1;-1.5*pi+t1],'ydata',[y(data_max);y(data_max)]);
drawnow;
end
pause
(1)
plot(x,y(data_max),'-o','markersize',2,'markerFaceColor','b');%画出上下界
pause
(1)
plot(x(data_max),y(data_max),'s','markersize',10,'markerFaceColor','r');%标注最大最小值
pause
(1)
text(x(data_max)+0.4,y(data_max)-0.07,sprintf('最大值=%2.4f',y(data_max)),'VerticalAlignment',...
'top','HorizontalAlignment','left','fontsize',12,'backgroundcolor','y');
pause
(1)
text(6,0.87,'\uparrow上界','backgroundcolor','y');
pause
(1)
text(-7,1.7,'该连续函数在给定区间内有界,且有最大最小值','backgroundcolor','r','color','w');
%c=input('请输入一个值验证介值定理,这个值在最大和最小值之间:
');
%ifc>data_max&c%disp('请注意输入值区间')
%end
结果:
评价:
能反映出定理,本人设想,如果让用户输入函数的话,必然有一个判断该函数是不是连续函数的过程,跳出相应的对话框,提示用户输入连续函数,这个到时一起