北航Matlab教程
习题4
1. 根据题给的模拟实际测量数据的一组t和y(t)试用数值差分diff或数值梯度gradient指令计算y (t),然后把y(t)和y (t)曲线绘制在同一张图上,观察数值求导的后果。(模拟数据从prob_data401.mat获得)(提示:自变量t采样间距太小。)
load prob_401;
N=20;
diff_y1=(diff(y(1:N:end)))./diff(t(1:N:end));
gradient_y1=(gradient(y(1:N:end)))./gradient(t(1:N:end));
t1=t(1:N:end);
length(t1)
plot(t,y,t1(1:end-1),diff_y1)
plot(t,y,t1,gradient_y1)
2. 采用数值计算方法,画出y(x) xsint
t0在[0, 10]区间曲线,并计算y(4.5)。
(提示:cumtrapz快捷,在精度要求不高处可用;quad也可试。巧用find。) d=0.5;
tt=0:d:10;
t=tt+(tt==0)*eps;
y=sin(t)./t;
s=d*trapz(y)
ss=d*(cumtrapz(y))
plot(t,y,t,ss,'r'),hold on
y4_5=ss(find(t==4.5))
yi=interp1(t,ss,4.5),plot(4.5,yi,'r+')
3. 求函数f(x) esin3x的数值积分s
0并请采用符号计算尝试复算。(提f(x)dx,
示:各种数值法均可试。)
d=pi/20;
x=0:d:pi;
fx=exp(sin(x).^3);
s=d*trapz(fx)
s1=quad('exp(sin(x).^3)',0,pi)
s2=quadl('exp(sin(x).^3)',0,pi)
s3=vpa(int('exp(sin(x)^3)',0,pi))
s4=vpa(int(sym('exp(sin(x)^3)'),0,pi))
4. 用quad求取 1.7
5 e xsinxdx的数值积分,并保证积分的绝对精度为10 9。(体
验:试用trapz,如何算得同样精度的积分。)
s1=quad('exp(-abs(x)).*abs(sin(x))',-5*pi,1.7*pi,1e-10)
s2=quadl('exp(-abs(x)).*abs(sin(x))',-5*pi,1.7*pi)
syms x;
s3=vpa(int(exp(-abs(x))*abs(sin(x)),-5*pi,1.7*pi))
d=pi/1000;
x=-5*pi:d:1.7*pi;
fx=exp(-abs(x)).*abs(sin(x));
s=d*trapz(fx)
5. 求函数f(t) (sin5t)e20.06t2 1.5tcos2t 1.8t 0.5在区间[ 5,5]中的最小值点。(提示:作图观察。)
x1=-5;
x2=5;
yx=inline('(sin(5*t)).^2.*exp(0.06*t.^2)-1.5.*t.*cos(2*t)+1.8.*abs(t+0.5)')