matlab求作为迭代初值的零点,第2章节matlab数值计算.ppt 第2章节 数值计算
讲义matlab数值计算 主要内容 排序 插值(复习) 拟合(复习) ⾮线性⽅程(组)的数值解(重点) 常微分⽅程(组)的数值求解(重点) 1 排序MATLAB中对向量X是排序函数是sort(X),函数返回⼀个对X中的元素按升序排列的新向量。 sort函数也可以对矩阵A的各列(或⾏)重新排序,其调⽤格式为: [Y,I]=sort(A,dim,mode) 其中dim指明对A的列还是⾏进⾏排序,若dim=1,则按列排,若dim=2,则按⾏排。Y是排序后的矩阵,⽽I记录Y中的元素在A中位置,mode=’ascend’或’descend’。 例: A=[1,-8,5;4,12,6;13,7,-13]; sort(A) %对A的每列按升序排序 -sort(-A,2) %对A的每⾏按降序排序 [X,I]=sort(A) %对A按列排序,并将每个元素所在⾏号送矩阵I 2 插值 ⼀维插值:
Y1=interp1(X,Y,X1,'method') 函数根据X、Y的值,计算函数在X1处的值。X、Y是两个等长的已知向量,分别描述采样点和样本值,X1是⼀个向量或标量,描述欲插值的点,Y1是⼀个与X1等长的插值结果。method是插值⽅法,允许的取值有'linear'(线性插值)、
'nearest'(最近插值)、'spline'(三次样条插值)、'cubic'(三次多项式插值),缺省值是'linear'。 例: 已知检测参数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,7857.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,'-
sort命令排序',T,F,'o',X,F1,'r*'); 3 拟合 多项式拟合:[P,S]=polyfit(X,Y,m) 函数根据采样点X和采样点函数值Y,产⽣⼀个m次多项式P及其在采样点的误差向量S。 其中X、Y是两个等长的向量,P是⼀个长度为m+1的向量。 例:⽤⼀个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-') 任意函数类型拟合: a=lsqcurvefit('fun',a0,x,y) 第1个参数是函数名(⼀个同名的m⽂件定义),第2个参数是初值,第3、4个参数是已知数据点。函数返回需要确定的参数a,使得函数fun最符合已知点。 例: 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); function f=example_curvefit_fun(a,t) f=exp(a(1)*t+a(2)); 练习 某⽓象观测站测得某⽇6:00-14:00之间每隔2⼩时的温度如下: 试⽤三次样条插值求出该⽇到达21.5度时的时刻。 已知lg(x)在[1,101]区间11个整数采样点x=1:10:101的函数值lg(x),试求lg(x)的5次拟合多项式p(x),并分别绘制出lg(x)和p(x)在[1,101]区间的函数曲线。 插值与拟合的异同 插值和拟
合都是根据⼀些离散点来估计另⼀些点的函数值,都是要假设函数类型然后进⾏参数估计。 插值并不需要具体函数表达式,⼀般都是分段的,⽬标是使得已知所有点的坐标都满⾜该分段函数,并且去估计出已知离散点中间的未知点的函数值。 ⽽拟合就是要求出具体函数表达式,⼀般不是分段的,⽬标是尽量的符合这些离散点(放弃了插值的精
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论