文章中的某些代码和图片来自郭彦甫老师的视频和ppt
a=[9 -5 3 7];%f(x)多项式
x= -2:0.01:5;%x的取值范围
f=polyval(a,x);%f(x)在x范围内的取值
plot(x,f,‘LineWidth’,2);%画图,线宽取2)
xlabel(‘x’);ylabel(‘f(x)’);%命名
set(gca,‘FontSize’,14);%修改坐标轴的性质
polyder(a);%获得微分后的向量
k=polyval(polyder(a),0)%求f’(0)的值
u=[5 -7 5 10];v=[4 12 -3];
w=conv(u,v);%卷积
x=-2:0.1:1;
f=polyval(w,x);%x值对应的f值
w1=polyder(w);%微分后的向量
f1=polyval(w1,x);%微分后对应的f值
hold on
plot(x,f,‘b:’,‘LineWidth’,2);
plot(x,f1,‘r–’,‘Linewidth’,2);
hold off
legend(‘f(x)’,‘f‘(x)’);
p=[5 0 -2 0 1];
polyint(p,3)% 当k=3时,得到积分后的向量
polyval(polyint(p,3),7)%x=7时的积分值
x=[1 2 5 2 1]
diff(x) %求前后两个值的差
ans =
1 3 -3 -1
如果是两个向量
x=[1 2];y=[5,7];
a=diff(y)./diff(x) %点(1,5)和(2,7)的斜率
ans=2
算某一点的斜率
x0=pi/2;
h=0.1;%h的值越小,斜率越精确
x=[x0,x0+h];
y=[sin(x0),sin(x0+h)];
m=diff(y)./diff(x)
m =
-0.0500
算一段区间里的斜率
h=0.5;%h的值越小,斜率越精确
x=0:h:2*pi;
y=sin(x);
m=diff(y)./diff(x);
练习
g=colormap(lines);
hold on
for i=1:3
x=0:power(10,-i):2*pi;
y=sin(x.^2./2);
m=diff(y)./diff(x);
plot(x(1:end-1),m,‘color’,g(i,:));
end
hold off
legend(‘h=0.1’,‘h=0.01’,‘h=0.001’);
另
x=-2:0.005:2;
y=x.^3;
m=diff(y)./diff(x);
m2=diff(m)./diff(x(1:end-1));
plot(x,y,x(1:end-1),m,x(1:end-2),m2);
xlabel(‘x’,‘FontSize’,18);
ylabel(‘y’,‘FontSize’,18);
legend(‘f(x)=x.^3’,‘f’’(x)’,‘f’’’’(x)’,4);
set(gca,‘FontSize’,18);
题目:
h=0.05; %h可换
x=0:h:2; %积分的范围是0到2
midpoint=(x(1:end-1)+x(2:end))./2;%某段的中点
y=4midpoint.^3;
s=sum(hy) %积分
h=0.05; %h可换
x=0:h:2; %积分的范围是0到2
y=4x.^3;
s=htrapz(y) %trapz(y)函数计算相邻y值的平均值
或者
h=0.05; %h可换
x=0:h:2; %积分的范围是0到2
y=4x.^3;
trapezoid=(y(1:end-1)+y(2:end))/2;%计算相邻y值的平均值
s=hsum(trapezoid)
h=0.05; %h可换
x=0:h:2; %积分的范围是0到2
y=4x.^3;
s=h/3(y(1)+2sum(y(3:2:end-2))+…
4sum(y(2:2:end))+y(end))
小结:
y=@x 1./(x.^3-2*x-5); %把要积分的函数用@表示
integral(y,0,2) %积分函数是y,积分区间是0到2
二重积分
f=@(x,y) y.*sin(x)+x.cos(y);
integral2(f,pi,2pi,0,pi)
ans =
-9.8696
三重积分
f=@(x,y,z) y.*sin(x)+z.*cos(y);
integral3(f,0,pi,0,1,-1,1)
ans =
2.0000