说明:为了复习高数,该文章是学习课程 《高等数学》同济版 全程教学视频(宋浩老师)而记录的笔记,笔记来源于本人。若有侵权,请联系本人删除。笔记难免可能出现错误或笔误,若读者发现笔记有错误,欢迎在评论里批评指正。参考书籍: 高等数学上册(同济_第7版)。
一、定积分的概念(定义、几何意义、近似计算)、性质
二、微积分的基本公式(积分上限函数、牛顿-莱布尼茨公式)
三、定积分的换元法
画例(5)两个图的代码需要两个.m文件,一个文件用于放画阴影的函数dohatch,该函数的原代码的链接为:MATLAB怎么实现对一个函数的特定区间加上阴影。另一个文件用于画图,是主文件。
函数dohatch的代码:
function h = dohatch(x,y,angle,color,style,step,width)
%DOHATCH Hatches a two-dimensional domain.
% DOHATCH(x,y,ANG,COL,'Style',D,W) is similar to the FILL command
% but fills the closed contour with hatch lines instead of uniform
% color. Vectors x and y are the coordinates of the boundary line of
% the domain to be hatched. Scalar ANG is the slope of the hatches
% (in degrees). COL is the color of the hatching which could both be
% a 1-by-3 vector ([red green blue] ), or a color specifier ('r','g',
% 'b', 'w','y','c','m'). 'Style' specifys the linestyle ('-','--','-.',
% ':'). And also, D is the steps (distances between hatches), W the
% linewidth (thickness) of the hatch lines (the last two in points).
%
% H = DOHATCH(...) returns the handle of the hatching.
%
% Note:
% This is a simplified version of the function HATCH (File ID: #2075)
% in MathWorks FileExchange website, running in manual style instead of
% in automatic style, because the original version still has a few bugs
% under some circumstances.
%
% See also: FILL, LINE.
% Revised by Kastin
% June, 28, 2015
if nargin>7||nargin<2
error('MATLAB:dohatch:WrongNumOfInputs',...
'Wrong number of inputs.')
end
% Here we do not check the validation of inputs any more for clearity.
% Defaults
angledflt = 45; % Angle in degrees
colordflt = [1 1 1]; % Color
styledflt = '-'; % Linestyle
widthdflt = 1; % Thickness of the lines
stepdflt = 10; % Distance between hatches
if nargin<7, width = widthdflt; end
if nargin<6, step = stepdflt; end
if nargin<5, style = styledflt; end
if nargin<4, color = colordflt; end
if nargin<3, angle = angledflt; end
angle = angle*pi/180; % Degrees to radians
x=x(:).'; y=y(:).';
yi = find(~isnan(x)&~isnan(y));
x = x(yi); y = y(yi); % Remove NaN's
x = [x x(1)]; y = [y y(1)]; % Close loop
ll = length(x);
% Transform the coordinates
oldu = get(gca,'units');
set(gca,'units','points')
sza = get(gca,'pos'); sza = sza(3:4);
xlim = get(gca,'xlim');
ylim = get(gca,'ylim');
islx = strcmp(get(gca,'xscale'),'log');
isly = strcmp(get(gca,'yscale'),'log');
if islx % If log scale in x
xlim = log10(xlim);
x = log10(x);
end
if isly % If log scale in y
ylim = log10(ylim);
y = log10(y);
end
xsc = sza(1)/(xlim(2)-xlim(1)+eps);
ysc = sza(2)/(ylim(2)-ylim(1)+eps);
ca = cos(angle); sa = sin(angle);
x0 = mean(x); y0 = mean(y); % Central point
x = (x-x0)*xsc; y = (y-y0)*ysc;
yi = x*ca+y*sa; % Rotation
y = -x*sa+y*ca;
x = yi;
y = y/step; % Make steps equal to one
% Compute the coordinates of the hatch line
yi = ceil(y);
ll = length(y);
yd = [yi(2:ll)-yi(1:ll-1) 0];
dm = max(abs(yd));
fnd = find(yd);
lfnd = length(fnd);
A = sign(yd(fnd));
edm = ones(dm,1);
A = A(edm,:);
if size(A,1)>1, A = cumsum(A); end
fnd1 = find(abs(A)<=abs(yd(edm,fnd)));
A = A+yi(edm,fnd)-(A>0);
xy = (x(fnd+1)-x(fnd))./(y(fnd+1)-y(fnd));
xi = x(edm,fnd)+(A-y(edm,fnd)).*xy(edm,:);
yi = A(fnd1);
xi = xi(fnd1);
% Sorting points of the hatch line ........................
li = length(xi);
xi0 = min(xi); xi1 = max(xi);
yi0 = min(yi); yi1 = max(yi);
ci = yi*(xi1-xi0)+xi;
[ci,num] = sort(ci);
xi = xi(num); yi = yi(num);
if floor(li/2)~=li/2
xi = [xi xi(li)];
yi = [yi yi(li)];
end
% Organize to pairs and separate by NaN's
li = length(xi);
xi = reshape(xi,2,li/2);
yi = reshape(yi,2,li/2);
xi = [xi; ones(1,li/2)*nan];
yi = [yi; ones(1,li/2)*nan];
xi = xi(:)'; yi = yi(:)';
% Transform to the original coordinates
yi = yi*step;
xy = xi*ca-yi*sa;
yi = xi*sa+yi*ca;
xi = xy/xsc+x0;
yi = yi/ysc+y0;
hl = line('xdata',xi,'ydata',yi,...
'color',color,'linestyle',style,'linewidth',width);
set(gca,'units',oldu) % Set axes units back
if nargout>0, h=hl; end
主文件的代码:
%MATLAB代码
%第一张图
x=-4:0.001:4;y=1/2*x.^2;
figure(1)
hold on;
plot(x,y);plot([-3.5 -3.5],[0 1/2*(-3.5).^2],'--');plot([3.5 3.5],[0 1/2*3.5.^2],'--');%画图
%将坐标轴放到原点
ax = gca;
ax.XAxisLocation = 'origin';
ax.YAxisLocation = 'origin';
set(gca,'xtick',-5:1:5,'ytick',-1:1:9);%刻度间隔设为1
axis equal;%同样的刻度范围显示出来是等长的
xlabel('x');ylabel('y');%给出x、y轴
legend("y_1=1/2*x^2","x_2=-3.5","x_3=3.5");
%在函数的一个区间内填充阴影
idx=x>=-3.5&x<=3.5;
xi=x(idx);
dohatch([xi xi(end) xi(1)],[y(idx) 0 0],30,'b','-.',8,1)
hold off
%第二张图
x1=-4:0.001:4;y1=1/7*x1.^3;
figure(2)
hold on;
plot(x1,y1);plot([-3.5 -3.5],[0 1/7*(-3.5).^3],'--');plot([3.5 3.5],[0 1/7*3.5.^3],'--');%画图
%将坐标轴放到原点
ax = gca;
ax.XAxisLocation = 'origin';
ax.YAxisLocation = 'origin';
set(gca,'xtick',-10:1:10,'ytick',-10:1:10);%刻度间隔设为1
axis equal;%同样的刻度范围显示出来是等长的
xlabel('x');ylabel('y');%给出x、y轴
legend("y_1=1/7*x^3","x_2=-3.5","x_3=3.5");
%在函数的一个区间内填充阴影
idx1=x1>=0&x1<=3.5;
x1i=x1(idx1);
dohatch([x1i x1i(end) x1i(1)],[y1(idx1) 0 0],30,'b','-.',8,1)
idx1=x1>=-3.5&x1<=0;
x1i=x1(idx1);
dohatch([x1i x1i(end) x1i(1)],[y1(idx1) 0 0],-30,'b','-.',8,1)
hold off
四、分部积分
五、反常积分(无穷限、无界函数的反常积分)、伽马函数