【1】用本章介绍的几种插值方法进行插值,间隔0.05
1.用interp1函数(四种方法)(函数调用格式:yi = interp1(x,y,xi,method))
x = [1,1.1,1.2,1.3,1.4];
y = [1.00000,1.23368,1.55271,1.99372,2.61170];
length_of_x = length(x);
scalar_x = [x(1):0.05:x(length_of_x)];
length_of_sx = length(scalar_x);
for i = 1:length_of_sx
y_nearest(i) = interp1(x,y,scalar_x(i),'nearest');
y_linear(i) = interp1(x,y,scalar_x(i),'linear');
y_spline(i) = interp1(x,y,scalar_x(i),'spline');
y_cubic(i) = interp1(x,y,scalar_x(i),'pchip');
end
subplot(2,2,1),plot(x,y,'*'),hold on,plot(scalar_x,y_linear),title('method=nearest');
subplot(2,2,2),plot(x,y,'*'),hold on,plot(scalar_x,y_spline),title('method=linear');
subplot(2,2,3),plot(x,y,'*'),hold on,plot(scalar_x,y_nearest),title('method=spline');
subplot(2,2,4),plot(x,y,'*'),hold on,plot(scalar_x,y_cubic),title('method=pchip');
运行结果如图:
2.插入方法2:interpft函数(函数调用格式:y = interpft(x,n))
%用interpft函数对正弦函数进行插值
x = 0:pi/5:2*pi;
y = sin(x);
plot(x,y);
hold on
y1 = interpft(y,20);
x1 = linspace(0,2*pi,20);
plot(x1,y1,'.');
3.插入方法3:外插运算(通过interp1函数添加'extrap'参数)
x = 0:0.5:10;
y = cos(x);
x1 = linspace(0,2*pi,20);
y1 = cos(x1);
y2 = interp1(x,y,x1,'nearest')
y2 = interp1(x,y,x1,'nearest','extrap')
y3 = interp1(x,y,x1,'linear','extrap');
y4 = interp1(x,y,x1,'spline','extrap');
y5 = pchip(x,y,x1);
plot(x,y,x1,y1,'o',x1,y2,'-',x1,y3,'-.',x1,y4,'--',x1,y5,'*')
【2】求函数y = e^x-x^5,初始点为x=8的解,并绘制图形。
y = @(x)exp(x)-x.^5;
x = fzero(y,8)
fplot(y,[x-1,x+1]);
hold on
plot(x,y(x),'r*');
运行结果:
x =
12.7132
【3】求下列函数的极值:
(1)z = x^2-(y-1)^2
(2)z = (x-y+1)^2
(1)解答
z= @(x)x(1)^2 - (x(2)-1)^2;
[x,fvalue,flag,output] = fminsearch(z,[0.0])
(2)解答
z = @(x)(x(1)-x(2)+1)^2;
[x,fvalue,flag,output] = fminsearch(z,[0,0])
【4】计算下列积分
解答:
(1)
f = @(x)x+x.^3 + x.^5;
q = quad(f,-1,1)
结果:
q =
2.2204e-16
(2)
f = @(x,y)sin(y).*(x+y)./(x.^2+4);
q = dblquad(f,1,10,1,10)
结果:
q =
5.5254
记得回顾复习!!!