MATLAB数据分析与多项式计算(M)
MATLAB_数值计算
b31 b32 b33
对于编程语言,矩阵就是二维的数组
2.1 MATLAB的基本计算
数学计算分为数值计算与符号计算,前者 不允许出现未定义变量,后者允许。(Eg 2-1) 常用的基本数学函数表。 (Eg 2-2)
Eg 2-1
三角函数
函数
sin sinh asin cos acos
说明
正弦函数 双曲正弦函数 反正弦函数 余弦函数 反余弦函数
MATLAB数值计算
2.1 MATLAB的基本计算 2.2 MATLAB矩阵和数组 2.3 关系和逻辑运算 2.4 多项式 2.5 稀疏矩阵 2.6 数据分析函数 2.7 数值分析
概述
在M语言中最常用的数据类型表现手段和形
式就是变量和常量
M语言的基本处理单位是数值矩阵或者数值
Eg 2-14 低维数组合成高维数组
建立3阶魔方及帕斯卡数组
将A、B串联成三维数组
cat(1,A,B)=[A;B]
cat(2,A,B)=[A,B]
>> A=eye(4) A= 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 >> A(:,:,2)=eye(4)*10; >> A(:,:,3)=eye(4)*100 A(:,:,1) = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 A(:,:,2) = 10 0 0 0 0 10 0 0 0 0 10 0 0 0 0 10 A(:,:,3) = 100 0 0 0 0 100 0 0 0 0 100 0 0 0 0 100
复数运算函数
函数
abs
பைடு நூலகம்
说明
求复数的模,若参数为实数则求绝对值
MATLAB)课后实验答案
实验一 MATLAB 运算基础1、 先求下列表达式得值,然后显示MATLAB 工作空间得使用情况并保存全部变量。
(1) 0122sin 851z e =+(2) 21ln(2z x =+,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦ (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e a z a a --+=++=--L (4) 2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t =0:0、5:2、5 解:4、 完成下列操作:(1) 求[100,999]之间能被21整除得数得个数。
(2) 建立一个字符串向量,删除其中得大写字母。
解:(1) 结果:(2)、 建立一个字符串向量 例如:ch='ABC123d4e56Fg9';则要求结果就是:实验二 MATLAB 矩阵分析与处理1、 设有分块矩阵33322322E R A O S ⨯⨯⨯⨯⎡⎤=⎢⎥⎣⎦,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵与对角阵,试通过数值计算验证22E R RS A OS +⎡⎤=⎢⎥⎣⎦。
解: M 文件如下;5、 下面就是一个线性方程组:1231112340.951110.673450.52111456x x x ⎡⎤⎢⎥⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎣⎦(1) 求方程得解。
(2) 将方程右边向量元素b 3改为0、53再求解,并比较b 3得变化与解得相对变化。
(3) 计算系数矩阵A 得条件数并分析结论。
解: M 文件如下:实验三 选择结构程序设计1、 求分段函数得值。
2226035605231x x x x y x x x x x x x ⎧+-<≠-⎪=-+≤<≠≠⎨⎪--⎩且且及其他用if 语句实现,分别输出x=-5、0,-3、0,1、0,2、0,2、5,3、0,5、0时得y 值。
matlab多项式与特征方程
MATLAB是一种常用的数学软件,它在科学计算领域有着广泛的应用。
在MATLAB中,多项式和特征方程是两个非常重要的概念。
本文将首先介绍多项式的相关知识,然后深入探讨多项式在MATLAB中的应用。
接着会详细介绍特征方程及其在MATLAB中的应用。
希望本文对读者能有所帮助。
一、多项式1. 多项式的定义多项式是代数学中的基本概念之一。
它是由若干个数与字母的乘积相加而成的代数式。
一般地,多项式的形式可以表示为:P(x) = a0 + a1x + a2x^2 + ... + anx^n其中,P(x)为多项式,x为自变量,a0, a1, ..., an为系数,n为多项式的次数。
2. MATLAB中的多项式表示在MATLAB中,可以使用polyval函数来计算多项式的值,使用polyfit函数来拟合数据得到多项式方程。
给定一组数据点(x, y),可以使用polyfit函数拟合出最佳拟合多项式,并使用polyval函数计算出对应x值时的多项式函数值。
3. MATLAB中的多项式运算MATLAB提供了丰富的多项式运算函数,例如polyadd、polymul、polyder、polyint等。
通过这些函数,可以方便地进行多项式的加法、乘法、求导、积分等运算。
二、特征方程1. 特征方程的定义特征方程是矩阵论中的一个重要概念。
对于一个n阶方阵A,其特征方程可以表示为:det(A - λI) = 0其中,det表示矩阵的行列式,λ是特征值,I为单位矩阵。
特征方程的解即为矩阵A的特征值。
2. MATLAB中的特征方程求解在MATLAB中,可以使用eig函数来求解特征方程。
eig函数可以计算出矩阵的所有特征值和对应的特征向量。
这对于解决线性代数中的特征值和特征向量相关问题非常有用。
3. 特征方程的应用特征方程在科学计算领域有着广泛的应用,例如在控制系统、信号处理、结构力学等方面都有重要作用。
通过求解特征方程,可以分析和预测系统的稳定性、自由振动特性等。
Matlab学习指导第四章 数值计算
2x1-x2-x3=4
3x1+4x2-2x3=11 3x1-2x2+4x3=11
A=[ 2,-1,-1 ; 3,4,-2; 3,-2,4 ]; b=[4; 11; 11]; det(A), rank(A), rank([A,b]) x=A\b
方程组的解的三种情况:
对于方程Ax=b, A为Am×n矩阵,有三种情况: 当m=n时,此方程成为"恰定"方程,求解精确解 当m>n时,此方程成为“超定”方程,寻求最小二乘解 (直线拟
合)
1) 恰定方程组的解
当m<n时,此方程成为"欠定"方程,寻求基本解 matlab定义的除运算可以很方便地解上述三种方程 x = 方程组Ax=b (A非奇异),解为x=A\b 例4.2.1-2 求下列方程组的解 3.00 1.00 1.00
通俗地讲, 拟合就是由已知点得到一条曲线, 使该曲线 最能反映点所代表的规律.比如做欧姆定理的实验的时 候,由于实验中存在误差,最后拟合得到的曲线是一条 直线,而且肯定只有部分点落在拟合的直线上,但此时 该直线和测试点的方差最小.由拟合直线的斜率就可以 知道电阻的阻值.拟合是探测事物变化规律的办法. 插值就是根据函数上某些已知点(或实验数据),按一定 规律(插值方法)寻求未知的点,比如已知一个常用对数 y=log(x)表,是按照x=0.1:0.1:10制表的,如果按已知数 据求y=log(2.897)就可以用插值得到.表制得越密,插值 越准确.
16
对于方程组Ax=b, 采用x=A\b计算,如果方程组为yC=d, 要使用右除,即指令为y=d/C
Ax=bx'A'=b'yC=d x=A\bx'=b'/A'y=d/C 例4.2.1-1 解下列方程组 2x1+2x2+3x3=3
matlab中多项式拟合方法
MATLAB中多项式拟合方法一、概述在科学计算和工程领域,多项式拟合是一种常用的数据拟合方法。
MATLAB作为一种强大的数学计算软件,提供了多种多项式拟合的函数和工具,可以方便地进行数据拟合和分析。
二、多项式拟合的原理多项式拟合是利用多项式函数来拟合已知的数据点,使得多项式函数与实际数据点的残差最小化。
多项式函数可以表达为:\[ y(x) = a_0 + a_1x + a_2x^2 + ... + a_nx^n \]其中,\(y(x)\)为拟合函数,\(a_0, a_1, a_2,...,a_n\)为多项式系数,\(x\)为自变量。
拟合的目标是通过确定系数的取值,使得多项式函数和实际数据点的误差最小。
三、MATLAB中的多项式拟合函数MATLAB提供了多种函数和工具来进行多项式拟合,常用的函数包括polyfit、polyval和polyfitn等。
1. polyfit函数polyfit函数用于多项式拟合,其调用格式为:\[ p = polyfit(x, y, n) \]其中,\(x\)为自变量数据,\(y\)为因变量数据,\(n\)为拟合的多项式阶数。
函数返回一个多项式系数向量\(p\),可以使用polyval函数计算拟合的多项式函数值。
2. polyval函数polyval函数用于计算多项式函数的值,其调用格式为:\[ y_fit = polyval(p, x) \]其中,\(p\)为多项式系数向量,\(x\)为自变量数据,\(y_fit\)为拟合的多项式函数值。
3. polyfitn函数polyfitn函数是MATLAB中的一个拟合工具箱,可以进行更复杂的多项式拟合和数据分析,包括多变量多项式拟合、非线性多项式拟合等。
四、多项式拟合的应用多项式拟合在科学研究和工程实践中有着广泛的应用,例如数据分析、曲线拟合、信号处理等领域。
1. 数据分析多项式拟合可用于分析实验数据,拟合实验结果,从而得出数据之间的关系和规律。
MATLAB数值运算.pdf
第3章 MATLAB 数值运算教学提示:每当难以对一个函数进行积分或者微分以确定一些特殊的值时,可以借助计算机在数值上近似所需的结果,从而生成其他方法无法求解的问题的近似解。
这在计算机科学和数学领域,称为数值分析。
本章涉及的数值分析的主要内容有插值与多项式拟合、数值微积分、线性方程组的数值求解、微分方程的求解等,掌握这些主要内容及相应的基本算法有助于分析、理解、改进甚至构造新的数值算法。
教学要求:本章主要是让学生掌握数值分析中多项式插值和拟合、牛顿-科茨系列数值求积公式、3种迭代方法求解线性方程组、解常微分方程的欧拉法和龙格-库塔法等具体的数值算法,并要求这些数值算法能在MATLAB 中实现。
3.1 多 项 式在工程及科学分析上,多项式常被用来模拟一个物理现象的解析函数。
之所以采用多项式,是因为它很容易计算,多项式运算是数学中最基本的运算之一。
在高等数学中,多项式一般可表示为以下形式:120121()n n n n n f x a x a x a x a x a −−−=+++++…。
当x 是矩阵形式时,代表矩阵多项式,矩阵多项式是矩阵分析的一个重要组成部分,也是控制论和系统工程的一个重要工具。
3.1.1 多项式的表达和创建在MATLAB 中,多项式表示成向量的形式,它的系数是按降序排列的。
只需将按降幂次序的多项式的每个系数填入向量中,就可以在MATLAB 中建立一个多项式。
例如,多项式43231529s s s s +−−+在MATLAB 中,按下面方式组成一个向量x = [1 3 -15 -2 9]MATLAB 会将长度为n +1的向量解释成一个n 阶多项式。
因此,若多项式某些项系数为零,则必须在向量中相应位置补零。
例如多项式41s +在MATLAB 环境下表示为y = [1 0 0 0 1]3.1.2 多项式的四则运算多项式的四则运算包括多项式的加、减、乘、除运算。
下面以对两个同阶次多项式MATLAB 基础及其应用教程·66··66·32()234a x x x x =+++,32()4916b x x x x =+++做加减乘除运算为例,说明多项式的四则运算过程。
第6章MATLAB数据分析与多项式计算
第6章MATLAB数据分析与多项式计算MATLAB是一种面向科学和工程计算的计算机语言和环境。
它具有强大的数据分析和多项式计算功能,可以用于数据处理、统计分析、曲线拟合、插值计算、解方程等多种应用。
数据分析是从数据中提取有用信息的过程,其中使用MATLAB可以轻松地进行各种数据操作和分析。
MATLAB提供了各种统计分析函数,可以计算数据的统计特征,如均值、方差、标准差、相关系数等。
同时,它还提供了数据绘图功能,可以将数据以直方图、散点图、折线图等形式展示出来,帮助用户更好地理解数据。
多项式计算是利用多项式进行数值计算的过程。
在MATLAB中,可以使用多种方法进行多项式计算,如多项式加减乘除、多项式求值、多项式插值等。
MATLAB提供了丰富的多项式操作函数,可以方便地进行多项式运算和计算。
在数据分析中,多项式计算经常用于曲线拟合和插值计算。
曲线拟合是根据给定的数据点,找出一个与之最接近的曲线。
MATLAB提供了polyfit函数,可以根据给定的数据点和多项式阶数,自动拟合出最优的多项式曲线。
此外,MATLAB还提供了curvefit函数,可以进行更加复杂的曲线拟合,如指数曲线拟合、对数曲线拟合等。
插值计算是根据已知的数据点,通过插值方法找出在这些数据点之间的未知点的近似值。
MATLAB提供了interp1函数,可以根据给定的数据点和插值方法,自动进行插值计算。
此外,MATLAB还提供了interp2函数,可以进行二维插值计算。
除了数据分析和多项式计算功能,MATLAB还具有其他强大的数值计算功能,如数值积分、数值微分、解线性方程组等。
这些功能使得MATLAB成为科学与工程领域中常用的计算工具。
在使用MATLAB进行数据分析和多项式计算时,需要注意数据的有效性和合理性。
数据分析的结果只能作为参考,不能作为绝对的判断依据。
多项式计算的结果也可能存在误差,需要进行适当的精度控制。
总之,MATLAB是一款功能强大的数据分析和多项式计算工具,可以帮助科学家和工程师快速、准确地进行各种数值计算和分析任务。
matlab实验内容答案解析
实验报告说明:matlab 课程实验需撰写8个实验报告,每个实验报告内容写每次实验内容中标号呈黑体大号字显示的题目。
第一次实验内容:实验一 MATLAB 运算基础一、实验目的1.熟悉启动和退出MATLAB 的方法。
2.熟悉MATLAB 命令窗口的组成。
3.掌握建立矩阵的方法。
4.掌握MATLAB 各种表达式的书写规则以及常用函数的使用。
二、实验内容1.先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。
(1)22sin 8511z e ︒=+(2)12ln(2z x =,其中2120.455i +⎡⎤=⎢⎥-⎣⎦(3)0.30.33sin(0.3), 3.0, 2.9, 2.8,,2.8,2.9,3.02a ae e z a a --=+=---提示:利用冒号表达式生成a 向量,求各点的函数值时用点乘运算。
(4)2220141122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪--≤<⎩,其中t =0:0.5:2.5 提示:用逻辑表达式求分段函数值。
2.已知12344347873657A -⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦,131203327B -⎡⎤⎢⎥=⎢⎥⎢⎥-⎣⎦求下列表达式的值:(1) A+6=B 和A-B+I(其中I 为单位矩阵)。
(2) A*B 和A.*B 。
(3) A^3和A^.3 。
(4) A/B 和B\A 。
(5)[A ,B]和[A([1,3],;);B^2] 。
3.设有矩阵A 和B12345678910111213141516171819202122232425A ⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦, 30161769023497041311B ⎡⎤⎢⎥-⎢⎥⎢⎥=-⎢⎥⎢⎥⎢⎥⎣⎦(1) 求它们的乘积C 。
(2) 将矩阵C 的右下角3×2子矩阵赋给D (3) 查看MATLAB 工作空间使用情况。
4.完成下列操作:(1)求[100,999]之间能被21整除的数的个数。
MATLAB简介输入及输出格式与多项式函数
MATLAB常用的三角函数 sin(x):正弦函数 asin(x):反正弦函数 cos(x):余弦函数 acos(x):反余弦函数 tan(x):正切函数 atan(x):反正切函数
sinh(x):超越正弦函数 asinh(x):反超越正弦 cosh(x):超越余弦函数 acosh(x):反超越馀弦函 数 tanh(x):超越正切函数 函数 atanh(x):反超越正切函数
name =
J.C. Wu
输出格式 至于输出有二种格式:自由格式 (disp) 和格式
化输出 (fprintf)。要直接输出文字或是一数值,
可使用disp,例如 >> temp=20; >> disp(temp); disp('degrees C'); disp(ห้องสมุดไป่ตู้度 C') %中文也接受呢! 20 degrees C 度C
以下就介绍相关范例,来说明二个多项式的加 减运算:
>> a=[1 2 3 4]; b=[1 4 9 16]; >> c=a+b c= 2 6 12 20 >> d=a-b d= 0 -2 -6 -12
而将两个多项式相乘可以得到一新的多项式 e(x) = a(x) b(x)
如果是两个多项式相除,即
>> p=x.^3+4*x.^2-7*x-10 为了能直接运用多项式,可以用函数 polyval直 接做运算,语法为 polyval(p,x),其中p 即是代 表多项式各阶系数 的阵列。因此
>> x=linspace(-1,3,N);
>> p=[1 4 7 -10];
>> v=polyval(p,x);
第6章 MATLAB数据分析与多项式计算_习题答案教学提纲
第6章M A T L A B数据分析与多项式计算_习题答案精品资料第6章 MATLAB数据分析与多项式计算习题6一、选择题1.设A=[1,2,3,4,5;3,4,5,6,7],则min(max(A))的值是()。
BA.1 B.3 C.5 D.72.已知a为3×3矩阵,则运行mean(a)命令是()。
BA.计算a每行的平均值 B.计算a每列的平均值C.a增加一行平均值 D.a增加一列平均值3.在MATLAB命令行窗口输入下列命令:>> x=[1,2,3,4];>> y=polyval(x,1);则y的值为()。
DA.5 B.8 C.24 D.104.设P是多项式系数向量,A为方阵,则函数polyval(P,A)与函数polyvalm(P,A)的值()。
DA.一个是标量,一个是方阵 B.都是标量C.值相等 D.值不相等5.在MATLAB命令行窗口输入下列命令:>> A=[1,0,-2];>> x=roots(A);则x(1)的值为()。
CA.1 B.-2 C.1.4142 D.-1.41426.关于数据插值与曲线拟合,下列说法不正确的是()。
AA.3次样条方法的插值结果肯定比线性插值方法精度高。
B.插值函数是必须满足原始数据点坐标,而拟合函数则是整体最接近原始数据点,而不一定要必须经过原始数据点。
C.曲线拟合常常采用最小二乘原理,即要求拟合函数与原始数据的均方误差达到极小。
D.插值和拟合都是通过已知数据集来求取未知点的函数值。
二、填空题1.设A=[1,2,3;10 20 30;4 5 6],则sum(A)= ,median(A)= 。
[15 27 39],[4 5 6[2.向量[2,0,-1]所代表的多项式是。
2x2-1仅供学习与交流,如有侵权请联系网站删除谢谢2精品资料3.为了求ax2+bx+c=0的根,相应的命令是(假定a、b、c已经赋值)。
MATLAB数据分析与多项式计算_习题答案
第6章 MATLAB数据分析与多项式计算习题6一、选择题1.设A=[1,2,3,4,5;3,4,5,6,7],则min(max(A))的值是()。
B A.1 B.3 C.5 D.72.已知a为3×3矩阵,则运行mean(a)命令是()。
BA.计算a每行的平均值 B.计算a每列的平均值C.a增加一行平均值 D.a增加一列平均值3.在MATLAB命令行窗口输入下列命令:>> x=[1,2,3,4];>> y=polyval(x,1);则y的值为()。
DA.5 B.8 C.24 D.104.设P是多项式系数向量,A为方阵,则函数polyval(P,A)与函数polyvalm(P,A)的值()。
DA.一个是标量,一个是方阵 B.都是标量C.值相等 D.值不相等5.在MATLAB命令行窗口输入下列命令:>> A=[1,0,-2];>> x=roots(A);则x(1)的值为()。
CA.1 B.-2 C. D.6.关于数据插值与曲线拟合,下列说法不正确的是()。
AA.3次样条方法的插值结果肯定比线性插值方法精度高。
B.插值函数是必须满足原始数据点坐标,而拟合函数则是整体最接近原始数据点,而不一定要必须经过原始数据点。
C.曲线拟合常常采用最小二乘原理,即要求拟合函数与原始数据的均方误差达到极小。
D.插值和拟合都是通过已知数据集来求取未知点的函数值。
二、填空题1.设A=[1,2,3;10 20 30;4 5 6],则sum(A)= ,median(A)= 。
[15 27 39],[4 5 6[2.向量[2,0,-1]所代表的多项式是。
2x2-13.为了求ax2+bx+c=0的根,相应的命令是(假定a、b、c已经赋值)。
为了将求得的根代回方程进行验证,相应的命令是。
x=roots([a,b,c]),polyval([a,b,c],x)4.如果被插值函数是一个单变量函数,则称为插值,相应的MATLAB函数是。
Matlab数据拟合实用教程
x= 3.0022 4.0304 0.9404
resnorm = 0.0912
2021/10/10
16
例4 已知观测数据点如表所示
x 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 y 3.1 3.27 3.81 4.5 5.18 6 7.05 8.56 9.69 11.25 13.17
2021/10/10
2
x=0:0.1:1 y=[-0.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.3,11.2] plot(x,y,'k.','markersize',25) axis([0 1.3 -2 16]) p3=polyfit(x,y,3) p6=polyfit(x,y,6)
5
解: 描出散点图, 在命令窗口输入:
t=[0:1:16] y=[30.0 29.1 28.4 28.1 28.0 27.7 27.5 27.2 27.0 26.8 26.5 26.3 26.1 25.7 25.3 24.8 24.0] plot(t,y,'*')
a=polyfit(t,y,1)
a= -0.3012 29.3804
用Matlab进行数据拟合
1. 多项式曲线拟合: polyfit.
p=polyfit(x,y,m) 其中, x, y为已知数据点向量, 分别表示横,纵坐 标, m为拟合多项式的次数, 结果返回m次拟合 多项式系数, 从高次到低次存放在向量p中.
y0=polyval(p,x0) 可求得多项式在x0处的值y0.
t=0:0.1:1.2 s=polyval(p3,t) s1=polyval(p6,t) hold on plot(t,s,'r-','linewidth',2) plot(t,s,'b--','linewidth',2) grid
第二讲 MATLAB的数值计算 —— matlab 具有出色的数值计算能力,占据世界上数值计算软件的主导地位
x=a\b x= 2.00 3.00
2.超定方程组的解
方程 ax=b ,m<n时此时不存在唯一解。 方程解 (a ' a)x=a ' b
x=(a' a)-1 a ' b —— 求逆法 x=a\b —— matlab用最小二乘法找一
个准确地基本解。
例: x1+2x2=1 2x1+3x2=2 3x1+4x2=3
特征多项式一定是n+1维的
特征多项式第一个元素一定是1
例:a=[1 2 3;4 5 6;7 8 0]; p=poly(a)
p =1.00 -6.00 -72.00 -27.00 p是多项式p(x)=x3-6x2-72x-27的
matlab描述方法,我们可用: p1=poly2str(p,‘x’) — 函数文件,显示 数学多项式的形式
matlab函数名必须小写。
3. 矩阵的修改
直接修改 可用键找到所要修改的矩阵,用键
移动到要修改的矩阵元素上即可修改。 指令修改
可以用A(,)= 来修改。
例如
a=[1 2 0;3 0 5;7 8 9]
a =1 2 0
305 789
还可以用函数subs
a(3,3)=0 a =1 2 0
p1 =x^3 - 6 x^2 - 72 x - 27
2.roots —— 求多项式的根
a=[1 2 3;4 5 6;7 8 0];p=poly(a) p=
1.00 -6.00 -72.00 -27.00 r=roots(p) r = 12.12
-5.73 ——显然 r是矩阵a的特征值 -0.39
用除法求的解x是具有最多零元素的 解 是具有最小长度或范数的解,这个 解是基于伪逆pinv求得的。
MATLAB矩阵分析及多项式运算
A=
1 8 27 125 1 1 1 4 2 1 9 3 1 25 5 1
(8) Hilbert(希尔伯特矩阵)与逆Hilbert矩阵 Hilbert矩阵的元素为:
1 1 1 hi, j , n阶矩阵表示为: H 2 i j 1 1 n
1 1 n 2 1 1 3 n 1 1 1 n 1 2n 1
例: >>r =[1,2,3,4]
>>c=[5,6,7,8]
r=
1 2 3 4 >>T=toeplitz(r) T= 1 2 3 4
c=
5 6 7 8
T=toeplitz(c,r)
T= 5 2 3 4 6 5 2 3 7 6 5 2 8 7 6 5
2 1 2 3
3 2 1 2
4
3 2 1
(10) 伴随矩阵 MATLAB生成伴随矩阵的函数是compan(p),其中p 是一个多项式的系数向量,高次幂系数排在前,低 次幂排在后。 例如,求多项式的x3-7x+6的伴随矩阵,可使用命令: p=[1,0,-7,6]; compan(p) ans = 0 7 -6 1 0 0 0 1 0
(11) 帕斯卡矩阵 二次项(x+y)n展开后的系数随n的增大组成 一个三角形表,称为杨辉三角形。由杨辉 三角形表组成的矩阵称为帕斯卡(Pascal)矩 阵。 函数pascal(n)生成一个n阶帕斯卡矩阵。
例:求(x+y)5的展开式。 在MATLAB命令窗口,输入命令: >> pascal(6) ans = 1 1 1 1 1 1 1 2 3 4 5 6 1 3 6 10 15 21 1 4 10 20 35 56 1 5 15 35 70 126 1 ,10,10,5,1即为展开式的系数。
第6章 MATLAB数据分析与多项式计算_习题答案
第6章 MATLAB数据分析与多项式计算习题6一、选择题1.设A=[1,2,3,4,5;3,4,5,6,7],则min(max(A))的值是()。
BA.1 B.3 C.5 D.72.已知a为3×3矩阵,则运行mean(a)命令是()。
BA.计算a每行的平均值B.计算a每列的平均值C.a增加一行平均值D.a增加一列平均值3.在MA TLAB命令行窗口输入下列命令:>> x=[1,2,3,4];>> y=polyval(x,1);则y的值为()。
DA.5 B.8 C.24 D.104.设P是多项式系数向量,A为方阵,则函数polyval(P,A)与函数polyvalm(P,A)的值()。
DA.一个是标量,一个是方阵B.都是标量C.值相等D.值不相等5.在MA TLAB命令行窗口输入下列命令:>> A=[1,0,-2];>> x=roots(A);则x(1)的值为()。
CA.1 B.-2 C.1.4142 D.-1.41426.关于数据插值与曲线拟合,下列说法不正确的是()。
AA.3次样条方法的插值结果肯定比线性插值方法精度高。
B.插值函数是必须满足原始数据点坐标,而拟合函数则是整体最接近原始数据点,而不一定要必须经过原始数据点。
C.曲线拟合常常采用最小二乘原理,即要求拟合函数与原始数据的均方误差达到极小。
D.插值和拟合都是通过已知数据集来求取未知点的函数值。
二、填空题1.设A=[1,2,3;10 20 30;4 5 6],则sum(A)= ,median(A)= 。
[15 27 39],[4 5 6[2.向量[2,0,-1]所代表的多项式是。
2x2-13.为了求ax2+bx+c=0的根,相应的命令是(假定a、b、c已经赋值)。
为了将求得的根代回方程进行验证,相应的命令是。
x=roots([a,b,c]),polyval([a,b,c],x)4.如果被插值函数是一个单变量函数,则称为插值,相应的MA TLAB函数是。
MATLAB 数值分析
13.2
极小化
作图除了提供视觉信息外,还常常需要确定一个函数的其它更多的特殊属性。在许多 应用中,特别感兴趣的是确定函数的极值,即最大值(峰值)和最小值(谷值)。数学上, 可通过确定函数导数(斜率)为零的点,解析上求出这些极值点。检验 humps 的图形在峰 值和谷值点上的斜率就很容易理解这个事实。显然,如果定义的函数简单,则这种方法常 常奏效。然而,即使很多容易求导的函数,也常常很难找到导数为零的点。在这种情况下, 以及很难或不可能解析上求得导数的情况下,必须数值上寻找函数的极值点。MATLAB 提 供了两个完成此功能的函数 fmin 和 fmins。 这两个函数分别寻找一维或 n 维函数的最小值。 这里仅讨论 fmin。有关 fmins 的详细信息,参阅《MATLAB 参考指南》。因为 f(x)的最大 值等于-f(x)的最小值,所以,上述 fmin 和 fmins 可用来求最大值和最小值。如果还不清楚, 把上述图形倒过来看,在这个状态下,峰值变成了谷值,而谷值则变成了峰值。 为了解释求解一维函数的最小值和最大值, 再考虑上述例子。 从图 13.2 可知, 在 xmax=0.7 附 近 有 一 个 最 大 值 , 并 且 在 xmin=4 附 近 有 一 个 最 小 值 。 而 这 些 点 的 解 析 值 为 : x m a x / 4 0.785 和 x min 5 / 4 393 . 。为了方便,用文本编辑器编写一个脚本 M 文件,并用 fmin 寻出数值上极值点,给出函数主体如下: % ex_fmin.m fn=‘ 2*exp(-x)*sin(x) ‘; xmin=fmin(fn , 2 , 5)
% better approximation
自然地,上述两个结果不同。基于对图形的观察,粗略近似可能低估了实际面积。除 非特别精确,没有准则说明哪种近似效果更好。很明显,如果人们能够以某种方式改变单 个梯形的宽度,以适应函数的特性,即当函数变化快时,使得梯形的宽度变窄,这样就能 够得到更精确的结果。 MATLAB 的函数 quad 和 quad8 是基于数学上的正方形概念来计算函数的面积, 这些 积分函数的操作方式一样。为获得更准确的结果,两个函数在所需的区间都要计算被积函 数。 此外, 与简单的梯形比较, 这两个函数进行更高阶的近似, 而且 quad8 比 quad 更精确。 这两个函数的调用方法与 fzero 相同,即 >>area=quad(‘ humps ‘ , -1 , 2) % find area between -1 and 2
MATLAB数据分析与多项式计算
注意:X1的取值范围不能超出X的给定范围,否则, 会给出“NaN”错误。
MATLAB中有一个专门的3次样条插值函数 Y1=spline(X,Y,X1),其功能及使用方法与函数 Y1=interp1(X,Y,X1,‘spline’)完全相同。
例6-11 某观测站测得某日6:00时至18:00时之间每隔2小 时的室内外温度(℃),用3次样条插值分别求得该日室内 外6:30至17:30时之间每隔2小时各点的近似温度(℃)。 设时间变量h为一行向量,温度变量t为一个两列矩阵, 其中第一列存放室内温度,第二列储存室外温度。命令 如下:
Y=std(A,flag,dim) 其中dim取1或2。当dim=1时,求各列元素的标准方差;当 dim=2时,则求各行元素的标准方差。flag取0或1,当flag=0 时,按σ1所列公式计算标准方差,当flag=1时,按σ2所列公 式计算标准方差。缺省flag=0,dim=1。 例6-7 对二维矩阵x,从不同维方向求出其标准方差。
2.相关系数
MATLAB提供了corrcoef函数,可以求出数据 的相关系数矩阵。corrcoef函数的调用格式为: corrcoef(X):返回从矩阵X形成的一个相关系数矩 阵。它把矩阵X的每列作为一个变量,然后求它们 的相关系数。 corrcoef(X,Y):在这里,X,Y是向量,它们与 corrcoef([X,Y])的作用一样。
(3) max(A,[],dim):dim取1或2。dim取1时,该函数和 max(A)完全相同;dim取2时,该函数返回一个列向量, 其第i个元素是A矩阵的第i行上的最大值。 求最小值的函数是min,其用法和max完全相同。
例6-2 分别求4×4魔方矩阵x中各列和各行元素中的最 大值,并求整个矩阵的最大值和最小值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第7章 MATLAB数据分析与多项式计算6.1 数据统计处理6.2 数据插值6.3 曲线拟合6.4 离散傅立叶变换6.5 多项式计算6.1 数据统计处理6.1.1 最大值和最小值MATLAB提供的求数据序列的最大值和最小值的函数分别为max 和min,两个函数的调用格式和操作过程类似。
1.求向量的最大值和最小值求一个向量X的最大值的函数有两种调用格式,分别是:(1) y=max(X):返回向量X的最大值存入y,如果X中包含复数元素,则按模取最大值。
(2) [y,I]=max(X):返回向量X的最大值存入y,最大值的序号存入I,如果X中包含复数元素,则按模取最大值。
求向量X的最小值的函数是min(X),用法和max(X)完全相同。
例6-1 求向量x的最大值。
命令如下:x=[-43,72,9,16,23,47];y=max(x) %求向量x中的最大值[y,l]=max(x) %求向量x中的最大值及其该元素的位置2.求矩阵的最大值和最小值求矩阵A的最大值的函数有3种调用格式,分别是:(1) max(A):返回一个行向量,向量的第i个元素是矩阵A的第i 列上的最大值。
(2) [Y,U]=max(A):返回行向量Y和U,Y向量记录A的每列的最大值,U向量记录每列最大值的行号。
(3) max(A,[],dim):dim取1或2。
dim取1时,该函数和max(A)完全相同;dim取2时,该函数返回一个列向量,其第i个元素是A矩阵的第i行上的最大值。
求最小值的函数是min,其用法和max完全相同。
例6-2 分别求3×4矩阵x中各列和各行元素中的最大值,并求整个矩阵的最大值和最小值。
3.两个向量或矩阵对应元素的比较函数max和min还能对两个同型的向量或矩阵进行比较,调用格式为:(1) U=max(A,B):A,B是两个同型的向量或矩阵,结果U是与A,B 同型的向量或矩阵,U的每个元素等于A,B对应元素的较大者。
(2) U=max(A,n):n是一个标量,结果U是与A同型的向量或矩阵,U的每个元素等于A对应元素和n中的较大者。
min函数的用法和max完全相同。
例6-3 求两个2×3矩阵x, y所有同一位置上的较大元素构成的新矩阵p。
6.1.2 求和与求积数据序列求和与求积的函数是sum和prod,其使用方法类似。
设X是一个向量,A是一个矩阵,函数的调用格式为:sum(X):返回向量X各元素的和。
prod(X):返回向量X各元素的乘积。
sum(A):返回一个行向量,其第i个元素是A的第i列的元素和。
prod(A):返回一个行向量,其第i个元素是A的第i列的元素乘积。
sum(A,dim):当dim为1时,该函数等同于sum(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素之和。
prod(A,dim):当dim为1时,该函数等同于prod(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素乘积。
例6-4 求矩阵A的每行元素的乘积和全部元素的乘积。
6.1.3 平均值和中值求数据序列平均值的函数是mean,求数据序列中值的函数是median。
两个函数的调用格式为:mean(X):返回向量X的算术平均值。
median(X):返回向量X的中值。
mean(A):返回一个行向量,其第i 个元素是A 的第i 列的算术平均值。
median(A):返回一个行向量,其第i 个元素是A 的第i 列的中值。
mean(A,dim):当dim 为1时,该函数等同于mean(A);当dim 为2时,返回一个列向量,其第i 个元素是A 的第i 行的算术平均值。
median(A,dim):当dim 为1时,该函数等同于median(A);当dim 为2时,返回一个列向量,其第i 个元素是A 的第i 行的中值。
例6-5 分别求向量x 与y 的平均值和中值。
6.1.4 累加和与累乘积设),,,,(321n u u u u u=,则称向量),,,(12111∑∑∑====ni i i i i i u u u v , ),,,(12111∏∏∏====n i i i i i i u u u w 分别为u 的累加和与累乘积。
在MATLAB 中,使用cumsum 和cumprod 函数能方便地求得向量和矩阵元素的累加和与累乘积向量,函数的调用格式为:cumsum(X):返回向量X 累加和向量。
cumprod(X):返回向量X 累乘积向量。
cumsum(A):返回一个矩阵,其第i 列是A 的第i 列的累加和向量。
cumprod(A):返回一个矩阵,其第i 列是A 的第i 列的累乘积向量。
cumsum(A,dim):当dim 为1时,该函数等同于cumsum(A);当dim 为2时,返回一个矩阵,其第i 行是A 的第i 行的累加和向量。
cumprod(A,dim):当dim 为1时,该函数等同于cumprod(A);当dim 为2时,返回一个向量,其第i 行是A 的第i 行的累乘积向量。
例6-6 求s 的值。
6.1.5 标准方差与相关系数1.求标准方差在MATLAB 中,提供了计算数据序列的标准方差的函数std(standard )。
对于向量X ,std(X)返回一个标准方差。
对于矩阵A ,std(A)返回一个行向量,它的各个元素便是矩阵A 各列或各行的标准方差。
std 函数的一般调用格式为:Y=std(A,flag,dim)其中dim 取1或2。
当dim=1时,求各列元素的标准方差;当dim=2时,则求各行元素的标准方差。
flag 取0或1,当flag=0时,按∑=--=n i i x x n 12)(111σ所列公式计算标准方差,当flag=1时,按∑=-=n i i x x n 12)(12σ所列公式计算标准方差。
缺省flag=0,dim=1。
例6-7 对二维矩阵x ,从不同维方向求出其标准方差。
2.相关系数MATLAB 提供了corrcoef(correlation coefficient)函数,可以求出数据的相关系数矩阵。
corrcoef 函数的调用格式为:corrcoef(X):返回从矩阵X 形成的一个相关系数矩阵。
此相关系数矩阵的大小与矩阵X 一样。
它把矩阵X 的每列作为一个变量,然后求它们的相关系数。
corrcoef(X,Y):在这里,X,Y 是向量,它们与corrcoef([X,Y])的作用一样。
例6-8 生成满足正态分布的10000×5随机矩阵,然后求各列元素的均值和标准方差,再求这5列随机数据的相关系数矩阵。
命令如下:X=randn(10000,5);M=mean(X)D=std(X)R=corrcoef(X)6.1.6 排序MATLAB 中对向量X 是排序函数是sort(X),函数返回一个对X 中的元素按升序排列的新向量。
sort 函数也可以对矩阵A 的各列或各行重新排序,其调用格式为:[Y,I]=sort(A,dim)其中dim 指明对A 的列还是行进行排序。
若dim=1,则按列排;若dim=2,则按行排。
Y 是排序后的矩阵,而I 记录Y 中的元素在A 中位置。
例6-9 对二维矩阵做各种排序。
A=magic(5)[Y,I]=sort(A,1)6.2 数据插值6.2.1 一维数据插值在MATLAB中,实现这些插值的函数是interp1,其调用格式为:Y1=interp1(X,Y,X1,'method')函数根据X,Y的值,计算函数在X1处的值。
X,Y是两个等长的已知向量,分别描述采样点和样本值,X1是一个向量或标量,描述欲插值的点,Y1是一个与X1等长的插值结果。
method是插值方法,允许的取值有…linear‟(线性插值)、…nearest‟(最近点插值)、…cubic‟(三次多项式插值)、…spline‟(三次样条插值)。
注意:X1的取值范围不能超出X的给定范围,否则,会给出“NaN”错误。
例6-10 用不同的插值方法计算在π/2点的值。
MATLAB中有一个专门的3次样条插值函数Y1=spline(X,Y,X1),其功能及使用方法与函数Y1=interp1(X,Y,X1,…spline‟)完全相同。
例6-11 某观测站测得某日6:00时至18:00时之间每隔2小时的室内外温度(℃),用3次样条插值分别求得该日室内外6:30至17:30时之间每隔2小时各点的近似温度(℃)。
设时间变量h为一行向量,温度变量t为一个两列矩阵,其中第一列存放室内温度,第二列储存室外温度。
命令如下:h =6:2:18;t=[18,20,22,25,30,28,24;15,19,24,28,34,32,30]';XI =6.5:2:17.5YI=interp1(h,t,XI,'spline') %用3次样条插值计算6.2.2 二维数据插值在MATLAB中,提供了解决二维插值问题的函数interp2,其调用格式为:Z1=interp2(X,Y,Z,X1,Y1,'method')其中X,Y是两个向量,分别描述两个参数的采样点,Z是与参数采样点对应的函数值,X1,Y1是两个向量或标量,描述欲插值的点。
Z1是根据相应的插值方法得到的插值结果。
method的取值与一维插值函数相同。
X,Y,Z也可以是矩阵形式。
同样,X1,Y1的取值范围不能超出X,Y的给定范围,否则,会给出“NaN”错误。
例6-12 设z=x2+y2,对z函数在[0,1]×[0,2]区域内进行插值。
x=0:0.1:1;y=0:0.2:2;[X,Y]=meshgrid(x,y);z=X.^2+Y.^2;interp2(x,y,z,0.5,0.5)interp2(x,y,z,[0.5,0.6],0.4) %在(0.5,0.4)点和(0.6,0.4)点插值interp2(x,y,z,[0.5,0.6]',[0.4,0.5])%在(0.5,0.4),(0.6,0.4),(0.5,0.5),(0.6,0.5)各点插值例6-13 某实验对一根长10米的钢轨进行热源的温度传播测试。
用x表示测量点0:2.5:10(米),用h表示测量时间0:30:60(秒),用T表示测试所得各点的温度(℃)。
试用线性插值求出在一分钟内每隔20秒、钢轨每隔1米处的温度TI。
命令如下:x=0:2.5:10;h=[0:30:60]';T=[95,14,0,0,0;88,48,32,12,6;67,64,54,48,41];xi=[0:10];hi=[0:20:60]';TI=interp2(x,h,T,xi,hi)6.3 曲线拟合在MATLAB中,用polyfit函数来求得最小二乘拟合多项式的系数,再用polyval函数按所得的多项式计算所给出的点上的函数近似值。