4.1 多项式与插值
4.1.1 多项式的表示
4.1.2 多项式的四则运算
4.1.3多项式的其他运算
1 roots函数的使用
2 polyval 函数
3 polyder函数
4 多项式拟合
4.1.4 数据插值
4.2 函数运算
4.2.1 函数的表示
4.2.2 数学函数图像的绘制
4.2.3 函数求极值
1. 一元函数的极小值
2. 多元函数的极小值
4.2.4 函数求解
4.2.5 数值积分
1. 一元函数的积分
2. 一元函数的矢量积分
3. 二重积分和三重积分
4.2.6 含参数函数的使用
1. 用嵌套函数提供函数参数
2. 用匿名函数提供函数参数
4.3 微分方程
习题代码
%% chapter 4
%% 1 四种插值法的运用
clc
x=[1 1.1 1.2 1.3 1.4]; %%录入题给数据x,y
y=[1.00000 1.23368 1.55271 1.99372 2.61170];
length_of_x=length(x); %%求出向量x中元素个数
scalar_x=x(1):0.05:x(length_of_x); %%从x向量中第一个元素开始,每间隔0.05取一个元素,直到最后一个元素。
length_of_sx=length(scalar_x); %%求出新向量scalar_x中元素个数
%%下面为一个循环(从1 到
%%新生成scalar_x的元素个数),运用interpl()函数进行插值,其中参数scalar_x(i)为插值的位置,最后一个参数是方法
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_pchip(i) =interp1(x,y,scalar_x(i),'pchip'); %%三次插值
end
%%画图,运用subplot()函数创建2*2四个图,用plot()进行绘制图(点和线),函数title()添加标题
subplot(2,2,1),plot(x,y,'r*'),hold on,plot(scalar_x,y_nearest),title('method=nearest');
subplot(2,2,2),plot(x,y,'b*'),hold on,plot(scalar_x,y_linear),title('method=linear');
subplot(2,2,3),plot(x,y,'g*'),hold on,plot(scalar_x,y_spline),title('method=spline');
subplot(2,2,4),plot(x,y,'y*'),hold on,plot(scalar_x,y_pchip),title('method=pchip');
%% 2 求解并绘图
y=@(x)exp(x)-x^5;%%通过匿名函数的方法构造函数
x = fzero(y,8)%%寻找初始点为8时(或者8附近的)的该方程的解,并返回解的坐标
fplot(y,[x-1,x+1]);%%画出在区间[x-1,x+1]的函数图像
hold on
plot(x,y(x),'r*');%%接着将函数的解用红色心标出
%% 3 求下列函数的极值
%% (1)
clc
z = @(x)x(1)^2-(x(2)-1)^2; %%构造函数
[x,fvalue,flag,output]=fminsearch(z,[0,0]) %%通过fminsearch()寻找最小值,其中x 和fvalue 分别为最小值点横坐标和最小值
%% (2)
clc
z = @(x)(x(1)-x(2)+1)^2; %%构造函数
[x,fvalue]=fminsearch(z,[0,0]) %%通过fminsearch()寻找最小值,其中x 和fvalue 分别为最小值点横坐标和最小值
%% 方法二
h_f=@z_chapter4 %%通过匿名函数的方法获取函数
[x,fvalue]=fminbnd(h_f,-100,100) %%运用函数fminbnd()在范围(-100,100)内找到最小值
%% 4 求两个函数的积分
%% (1)
f = @(x)x+x.^3+x.^5;%%通过@构造函数
q = quad(f,-1,1)%%求函数的积分
%% (2)
f5 = @(x,y)sin(y).*(x+y)./(x.^2+4);%%通过@构造函数
q = dblquad(f5,1,10,1,10)%%求函数的二重积分
%% 4.2.6 含参数函数的使用
%% 课本例子
%% 方法(1)用嵌套函数提供
%%
clc
%%求三次多项式的最小值
function [x0,y] = funmin(a,b,c,x1,x2)
options = optimset('Display','off');
[x0,y] = fminbnd(@poly3,x1,x2,options); %%调用构造函数
function y=poly3(x) %构造函数
y=x^3+a*x^2+b*x+c;
end
% 画出函数图像
fplot(@poly3,[x1,x2]); %%画出函数在区间[x1,x2]上的图像
hold on;
plot(x0,y,'.');
end
%%这行需要在commad里面输入
[x,y]=funmin(-1000,10,0,600,800)
%% 方法(2)用匿名函数提供函数参数
%%这行需要在commad里面输入
[x,y]=funmin_para(-1000,10,0,600,800)