网站建设里程碑,新开传奇网站999新服网,在婚恋网站做销售好吗,无锡做网络推广的公司7.1.1 分段线性插值所谓分段线性插值就是通过插值点用折线段连接起来逼近原曲线#xff0c;这也是计算机绘制图形的基本原理。实现分段线性插值不需编制函数程序#xff0c;MATLAB自身提供了内部函数interp1其主要用法如下#xff1a;interp1(x,y,xi) 一维插值◆ yiinterp1(…7.1.1 分段线性插值所谓分段线性插值就是通过插值点用折线段连接起来逼近原曲线这也是计算机绘制图形的基本原理。实现分段线性插值不需编制函数程序MATLAB自身提供了内部函数interp1其主要用法如下interp1(x,y,xi) 一维插值◆ yiinterp1(x,y,xi) 对一组点(x,y) 进行插值计算插值点xi的函数值。x为节点向量值y为对应的节点函数值。如果y 为矩阵则插值对y 的每一列进行若y 的维数超出x 或 xi 的维数则返回NaN。◆ yiinterp1(y,xi) 此格式默认x1:n n为向量y的元素个数值或等于矩阵y的size(y,1)。◆yiinterp1(x,y,xi,’method’) method用来指定插值的算法。默认为线性算法。其值常用的可以是如下的字符串。●nearest 线性最近项插值。●linear 线性插值。●spline 三次样条插值。●cubic 三次插值。所有的插值方法要求x是单调的。x 也可能并非连续等距的。正弦曲线的插值示例 x0:0.1:10; ysin(x); xi0:0.25:10; yiinterp1(x,y,xi); plot(x,y,’0’,xi,yi)则可以得到相应的插值曲线(读者可自己上机实验)。Matlab也能够完成二维插值的运算相应的函数为interp2使用方法与interpl基本相同只是输入和输出的参数为矩阵对应于二维平面上的数据点详细的用法见Matlab联机帮助。7.1.2 最小二乘法拟合在科学实验的统计方法研究中,往往要从一组实验数据 中寻找出自变量x 和因变量y之间的函数关系yf(x) 。由于观测数据往往不够准确因此并不要求yf(x)经过所有的点 ,而只要求在给定点上误差按照某种标准达到最小通常采用欧氏范数 作为误差量度的标准。这就是所谓的最小二乘法。在MATLAB中实现最小二乘法拟合通常采用polyfit函数进行。函数polyfit是指用一个多项式函数来对已知数据进行拟合我们以下列数据为例介绍这个函数的用法 x0:0.1:1 y[ -0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2 ]为了使用polyfit首先必须指定我们希望以多少阶多项式对以上数据进行拟合如果我们指定一阶多项式结果为线性近似通常称为线性回归。我们选择二阶多项式进行拟合。 P polyfit (x, y, 2)P-9.8108 20.1293 -0.0317函数返回的是一个多项式系数的行向量写成多项式形式为为了比较拟合结果我们绘制两者的图形 xilinspace (0, 1,100); %绘图的X-轴数据。 Zpolyval (p,xi); %得到多项式在数据点处的值。当然我们也可以选择更高幂次的多项式进行拟合如10阶 ppolyfit (x,y, 10); xilinspace (0,1,100); zployval (p, xi);读者可以上机绘图进行比较曲线在数据点附近更加接近数据点的测量值了但从整体上来说曲线波动比较大并不一定适合实际使用的需要所以在进行高阶曲线拟合时“越高越好”的观点不一定对的。7.2.1 符号变量与符号表达式MATLAB符号运算工具箱处理的对象主要是符号变量与符号表达式。要实现其符号运算首先需要将处理对象定义为符号变量或符号表达式其定义格式如下格式1 sym(‘变量名’) 或 sym (‘表达式’)功能 定义一个符号变量或符号表达式。例如 sym(‘x’) % 定义变量x为符号变量sym(‘x1’) % 定义表达式x1为符号表达式格式2 syms 变量名1 变量名2 …… 变量名n功能 定义变量名1、变量2 ……、变量名 n为符号变量。例如 syms a b x t % 定义a,b, x,t 均为符号变量7.2.2 微积分运算1、极限格式limit (f, t, a, ‘left’ or ‘right’)功能求符号变量t 趋近a 时函数f 的(左或右)极限。‘left’ 表示求左极限‘right’ 表示求右极限省略时表示求一般极限a省略时变量t 趋近0 t省略时默认变量为x 若无x则寻找(字母表上)最接近字母x 的变量。例如求极限 的命令及结果为 syms x t limit ((12*t/x)^(3*x) , x, inf)ansexp(6*t)2、导数格式 diff (f,t,n)功能 求函数f 对变量 t的n 阶导数。当n省略时默认 n1当t省略时默认变量x,若无x时则查找字母表上最接近字母x 的字母。例如求函数fa*x^2b*xc对变量 x的一阶导数, 命令及结果为 syms a b c x fa*x^2b*xc;diff(f) ans2*a*xb求函数f 对变量b的一阶导数(可看作求偏导), 命令及结果为diff(f,b) ansx求函数f 对变量x的二阶导数, 命令及结果为diff(f,2) ans2*a3、积分格式 int(f,t,a,b)功能 求函数f 对变量 t从a 到b的定积分. 当a和b省略时求不定积分当t省略时, 默认变量为(字母表上)最接近字母x的变量。例如求函数fa*x^2b*xc对变量x不定积分, 命令及结果为 syms a b c x fa*x^2b*xc;int(f) ans1/3*a*x^31/2*b*x^2c*x求函数f 对变量b不定积分, 命令及结果为int(f,b) ansa*x^2*b1/2*b^2*xc*b求函数f 对变量x 从 1到5的定积分, 命令及结果为int(f,1,5) ans124/3*a12*b4*c4、级数求和格式 symsum (s,t,a,b)功能求表达式s中的符号变量t从第a项到第b项的级数和。例如 求级数 的前三项的和, 命令及结果为symsum(1/x,1,3) ans11/6MATLAB符号运算工具箱中包括了较多的代数式化简和代换功能下面仅举出部分常见运算。simplify 利用各种恒等式化简代数式expand 将乘积展开为和式factor 把多项式转换为乘积形式collect 合并同类项horner 把多项式转换为嵌套表示形式例如进行合并同类项执行 syms x collect(3*x^3-0.5*x^33*x^2)ans5/2*x^33*x^2)7.2.4 解方程1、代数方程格式solve (f,t)功能对变量t 解方程f0t 缺省时默认为x 或最接近字母x 的符号变量。例如求解一元二次方程fa*x^2b*xc的实根 syms a b c x fa*x^2b*xc; solve (f,x)ans[1/2/a*(-b(b^2-4*a*c)^ (1/2))][1/2/a*(-b-(b^2-4*a*c)^ (1/2))]2、微分方程格式dsolve(‘s’, ’s1’, ’s2’,…, ’x’)其中s为方程s1,s2,……为初始条件缺省时给出含任意常数c1,c2,……的通解x为自变量缺省时默认为t 。例如求微分方程 的通解 dsolve(‘Dy1y^2’)anstan(tc1)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%向量的点乘向量的点乘又称为内积是两个向量的模和两个向量之间的夹角余弦三者的乘积。MATLAB中实现点乘的函数是dot。dot 函数的用法为 dot(x1,x2)其中 x1 和 x2 的维数必须相同。向量的叉乘向量乘法除点乘之外还有叉乘。两个向量叉积的几何意义是指以两个向量模的乘积为模方向和两个向量构成右手坐标系的向量。向量的叉乘不可交换。在 MATLAB 中函数 cross 用于实现向量的叉乘。向量的混合积向量的混合积的几何意义是它的绝对值表示以三个向量为楞的平行六面体的体积符号由右手法则确定。上面介绍了向量的点乘和叉乘向量的混合积由点乘和叉乘逐步实现。%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5一维插值在曲线拟合和数据分析中具有重要的地位。在 MATLAB 中一维插值由函数 interp1 实现。该函数的调用格式为yi interp1(x,y,xi,method)x、y采用数据的 x 坐标和 y 坐标xi 待插值的位置method采用的插值方法该语句返回函数在点 xi 处的插值结果。该语句中的参数 method 可以选择的内容如表所示。参数 对应方法nearest 最近邻插值linear 线性插值spline 三次样条插值pchip或cubic 三次插值MATLAB 中提供了两种函数表示的方法利用 M 文件将函数定义为 MALTAB 函数将函数定义为 MALTAB函数当需要调用该函数时需要通过符号“”获取函数句柄利用函数句柄实现对函数的操作。匿名函数方法直接创建函数如语句 fh (x)1./((x-0.3).^2 0.01) 1./((x-0.9).^2 0.04)-6;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%图形用户界面开发环境——GUIDE应用程序向导简化开发步骤下拉及弹出式菜单支持多种界面元素按钮(PUSH BUTTON)单选按钮(RADIO BUTTON)复选框(CHECK BOXES)滑块(SLIDERS)、文本编辑框(EDIT BOX)和 ActiveX 控件鼠标事件(Mouse Event)和响应函数(drawback)利用响应函数响应工程师的操作MATLAB 中只用小括号代表运算级别中括号只用于生成向量和矩阵花括号用于生成单元数组。在 MATLAB 中存在逻辑数组如下面的表达式返回逻辑数组 [30 40 50 60 70] 40ans 0 0 1 1 1冒号裁剪符的使用方法是ZA([,,…][,,…])该式子表示的是提取数组的…等行…等列组成一个新的数组。此外在数字索引访问数组的时候当某一索引值的位置上不是数字而是冒号的话则表示取这一个索引位置的所有数组元素。比如对一个3行3列的数组A(1,:)表示取数组A的第一行所有元素。删除数组元素可以通过将该位置的数组元素赋值为空方括号([])即可一般配合冒号使用将数组中的某些行、列元素删除。不过需要注意的是在进行数组元素的删除时索引结果必须是完整的行或列而不能是数组内部的块或者单元格。