《第2章数值计算优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第2章数值计算优秀PPT.ppt(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第2章数值计算章数值计算现在学习的是第1页,共11页主要内容主要内容1.排序排序2.插值插值(复习)(复习)3.拟合拟合(复习)(复习)4.非线性方程(组)的数值解非线性方程(组)的数值解(重点)(重点)5.常微分方程(组)的数值求解常微分方程(组)的数值求解(重点)(重点)现在学习的是第2页,共11页1 排序排序lMATLAB中对向量中对向量X是排序函数是是排序函数是sort(X),函数返回,函数返回一个对一个对X中的元素按升序排列的新向量。中的元素按升序排列的新向量。lsort函数也可以对矩阵函数也可以对矩阵A的各列的各列(或行或行)重新排序,其调重新排序,其调用格式为:用格式为:lY,
2、I=sort(A,dim,mode)l其中其中dim指明对指明对A的列还是行进行排序,若的列还是行进行排序,若dim=1,则,则按列排,若按列排,若dim=2,则按行排。,则按行排。Y是排序后的矩阵,而是排序后的矩阵,而I记录记录Y中的元素在中的元素在A中位置中位置,modeascend或或descend。l例:例:A=1,-8,5;4,12,6;13,7,-13;sort(A)%对对A的每列按升序排序的每列按升序排序-sort(-A,2)%对对A的每行按降序排序的每行按降序排序X,I=sort(A)%对对A按列排序,并将每个元素所在行号送矩阵按列排序,并将每个元素所在行号送矩阵I现在学习的是
3、第3页,共11页2 插值插值l一维插值:一维插值:Y1=interp1(X,Y,X1,method)l函数根据函数根据X、Y的值,计算函数在的值,计算函数在X1处的值。处的值。X、Y是两个等长的已知向量,分别描述采是两个等长的已知向量,分别描述采样点和样本值,样点和样本值,X1是一个向量或标量,描是一个向量或标量,描述欲插值的点,述欲插值的点,Y1是一个与是一个与X1等长的插值等长的插值结果。结果。method是插值方法,允许的取值有是插值方法,允许的取值有linear(线性插值线性插值)、nearest(最近插值最近插值)、spline(三次样条插值三次样条插值)、cubic(三次多项(三次
4、多项式插值),缺省值是式插值),缺省值是linear。现在学习的是第4页,共11页例:例:已知检测参数已知检测参数f随时间随时间t的采样结果,用数值插值法计算的采样结果,用数值插值法计算t=2,7,12,17,22,17,32,37,42,47,52,57时时f的值。的值。这是一个一维数值插值问题,命令如下:这是一个一维数值插值问题,命令如下:T=0:5:65;%已知点已知点X=2:5:57;%待求点待求点F=3.2015,2.2560,879.5,1835.9,2968.8,4136.2,5237.9,6152.7,6725.3,6848.3,6403.5,6824.7,7328.5,785
5、7.6;%已知值已知值F1=interp1(T,F,X)%用线性方法插值用线性方法插值F1=interp1(T,F,X,nearest)%用最近方法插值用最近方法插值F1=interp1(T,F,X,spline)%用三次样条方法插值用三次样条方法插值F1=interp1(T,F,X,cubic)%用三次多项式方法插值用三次多项式方法插值plot(T,F,-,T,F,o,X,F1,r*);现在学习的是第5页,共11页3 拟合拟合l多项式拟合:多项式拟合:P,S=polyfit(X,Y,m)l函数根据采样点函数根据采样点X和采样点函数值和采样点函数值Y,产生一,产生一个个m次多项式次多项式P及其
6、在采样点的误差向量及其在采样点的误差向量S。l其中其中X、Y是两个等长的向量,是两个等长的向量,P是一个长度是一个长度为为m+1的向量。的向量。l例:例:用一个用一个5次多项式在区间次多项式在区间0,2内逼近函数内逼近函数sin(x):X=linspace(0,2*pi,50);Y=sin(X);P,S=polyfit(X,Y,5)%得到得到5次多项式的系数和误差次多项式的系数和误差plot(X,Y,k*,X,polyval(P,X),k-)现在学习的是第6页,共11页l任意函数类型拟合:任意函数类型拟合:a=lsqcurvefit(fun,a0,x,y)l第第1个参数是函数名(一个同名的个参
7、数是函数名(一个同名的m文件定义),第文件定义),第2个参数个参数是初值,第是初值,第3、4个参数是已知数据点。函数返回需要确个参数是已知数据点。函数返回需要确定的参数定的参数a,使得函数,使得函数fun最符合已知点。最符合已知点。l例:例:x=1790:10:1990;y=3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76 92 106.5 123.2 131.7 150.7 179.3 204 226.5 251.4;a0=0.001,1;%初值初值a=lsqcurvefit(example_curvefit_fun,a0,x,y);
8、function f=example_curvefit_fun(a,t)f=exp(a(1)*t+a(2);现在学习的是第7页,共11页练习练习1.1.某气象观测站测得某日某气象观测站测得某日6:00-14:006:00-14:00之间之间每隔每隔2 2小时的温度如下:小时的温度如下:试用三次样条插值求出该日到达试用三次样条插值求出该日到达21.521.5度时度时的时刻。的时刻。2.2.已知已知lg(x)在在1,101区间区间11个整数采样点个整数采样点x=1:10:101的函数值的函数值lg(x),试求,试求lg(x)的的5次拟合多项式次拟合多项式p(x),并分别绘制出,并分别绘制出lg(x
9、)和和p(x)在在1,101区间的函数曲线。区间的函数曲线。现在学习的是第8页,共11页插值与拟合的异同插值与拟合的异同l插值和拟合都是根据一些离散点来估计另一些插值和拟合都是根据一些离散点来估计另一些点的函数值,都是要假设函数类型然后进行参点的函数值,都是要假设函数类型然后进行参数估计。数估计。l插值并不需要具体函数表达式,一般都是分段插值并不需要具体函数表达式,一般都是分段的,目标是使得已知所有点的坐标都满足该分的,目标是使得已知所有点的坐标都满足该分段函数,并且去估计出已知离散点中间的未知段函数,并且去估计出已知离散点中间的未知点的函数值。点的函数值。l而拟合就是要求出具体函数表达式,一
10、般不是而拟合就是要求出具体函数表达式,一般不是分段的,目标是尽量的符合这些离散点(放弃分段的,目标是尽量的符合这些离散点(放弃了插值的精确性),从而研究这个函数的性质,了插值的精确性),从而研究这个函数的性质,或者估计一些未知点的值(通常是未来的而不或者估计一些未知点的值(通常是未来的而不是已知点中间的)。是已知点中间的)。现在学习的是第9页,共11页1单变量非线性方程求解:单变量非线性方程求解:x,fval=fzero(f,x0,tol)l该函数采用迭代法计算函数该函数采用迭代法计算函数f(x)的一个零点,迭代初值为的一个零点,迭代初值为x0,当两,当两次迭代结果小于次迭代结果小于tol时停
11、止迭代过程。时停止迭代过程。tol的缺省值是的缺省值是eps。l注意,在调用函数注意,在调用函数fzero 之前,要使用之前,要使用m文件建立自己要计算的文件建立自己要计算的函数函数f(x),只有定义了函数,只有定义了函数f(x)的的m文件后,才能在文件后,才能在fzero函数的函数的参数中使用自定义函数名。参数中使用自定义函数名。(注:此步也可用注:此步也可用inline函数定义函数定义)例:例:求求f(x)=x-1/x+5 在在x0=-5作为迭代初值时的零点。作为迭代初值时的零点。先编制一个函数文件先编制一个函数文件fz.m:function f=fz(x)f=x-1/x+5;然后,在然后
12、,在MATLAB命令窗口,输入命令:命令窗口,输入命令:fzero(fz,-5)4 非线性方程(组)的数值解非线性方程(组)的数值解现在学习的是第10页,共11页2非线性方程组求解:非线性方程组求解:X,fval=fsolve(F,X0)l参数意义同参数意义同fzero,只不过,只不过X0为向量。为向量。例:例:求圆和直线的两个交点。求圆和直线的两个交点。(可先观察下这个方程组初步估计初可先观察下这个方程组初步估计初始点)始点)建立方程组函数文件建立方程组函数文件fxyz2.m:function F=fxyz2(X)x=X(1);y=X(2);z=X(3);F(1)=x2+y2+z2-9;F(2)=3*x+5*y+6*z;F(3)=x-3*y-6*z-1;在在MATLAB命令窗口,输入命令:命令窗口,输入命令:X1=fsolve(fxyz2,-1,1,-1)%求直线与球面的第一个交点求直线与球面的第一个交点X2=fsolve(fxyz2,1,-1,1)%求直线与球面的第二个交点求直线与球面的第二个交点现在学习的是第11页,共11页