当前位置:
文档之家› MATLAB语言及应用-第三章(2)
MATLAB语言及应用-第三章(2)
系数向量,该函数返回方程p(x)=0的全部根(含重根, 复根)。
第3章 MATLAB 在现代科学计算中的应用
3. 多项式求值
求多项式p(x)在某点或某些点的函数值的函数是 polyval(P,x)。若x为一数值,则求多项式在该点的 值;若x为向量或矩阵,则对向量或矩阵中的每个 元素求其多项式的值。
②U=max(A,n) n是一个标量。结果U是与A同型的向 量或矩阵,U的每个元素等于A对应元素和n中的较 大者。
min函数的用法和max完全相同。
第3章 MATLAB 在现代科学计算中的应用
例1求矩阵A的每行及每列的最大和最小元素,并求 整个矩阵的最大和最小元素。
命令如下:
A=[13,-56,78;25,63,-235;78,25,563;1,0,-1];
向量。
第3章 MATLAB 在现代科学计算中的应用
例7 用一个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-')
和(0.6,0.5)点进行插值 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)点进行插值
第3章 MATLAB 在现代科学计算中的应用
3. 三维数值插值 对三维函数插值的函数是interp3,其使用方法和
第3章 MATLAB 在现代科学计算中的应用
4. 矩阵元素累加和与累乘积 MATLAB中,使用cumsum和cumprod函数能方便地
求得向量和矩阵元素的累加和与累乘积向量,函数 的用法和sum及prod相同 例3 求向量X=(1!,2!,3!,…,10!)。 命令如下:
X=cumprod(1:10)
g(x) 3x2 5x 3 计算: (1)求f(x)+g(x)、f(x)-g(x)。 (2)求f(x)·g(x)、f(x)/g(x)。
第3章 MATLAB 在现代科学计算中的应用
在MATLAB命令窗口,输入命令:
f=[3,-5,2,-7,5,6];g=[3,5,-3];g1=[0,0,0,g];
平均值和标准方差,并求全体的平均值和标准方差。
第3章 MATLAB 在现代科学计算中的应用
6. 元素排序 MATLAB中对向量X是排序函数是sort(X),函数返回一
个对X中的元素按升序排列的新向量。 sort函数也可以对矩阵A的各列(或行)重新排序,其调用
格式为:
[Y,I]=sort(A,dim) 其中dim指明对A的列还是行进行排序,若dim=1,则按
第3章 MATLAB 在现代科学计算中的应用
例5 用不同的插值方法计算sin(x)在π/2点的值。 这是一维插值问题。在MATLAB命令窗口,输入命令: X=0:0.2:pi;Y=sin(X); %给出X、Y interp1(X,Y,pi/2) %用缺省方法计算sin(π/2) interp1(X,Y,pi/2,'nearest') %最近方法计算sin(π/2) interp1(X,Y,pi/2,'linear') %线性方法计算sin(π/2) interp1(X,Y,pi/2,'spline') %三次样条方法计算sin(π/2) interp1(X,Y,pi/2,'cubic') %三次多项式方法计算sin(π/2)
的函数是median。它们的调用方法和max函数完全 相同。
3. 矩阵元素求和与求积 矩阵和向量求和与求积的基本函数是sum和prod,其
使用方法和max类似。
第3章 MATLAB 在现代科学计算中的应用
例2 求矩阵A的每行元素的乘积和全部元素的乘积。 命令如下: A=[1,2,3,4;5,6,7,8;9,10,11,12]; S=prod(A,2) prod(S) %求A的全部元素的乘积
运算。其中Q返回多项式P1除以P2的商式,r返回 P1除以P2的余式。这里,Q和r仍是多项式系数向 量。
deconv是conv的逆函数,即有P1=conv(P2,Q)+r。
第3章 MATLAB 在现代科学计算中的应用
例9 设有两个多项式,
f (x) 3x5 5x4 2x3 7x2 5x 6
第3章 MATLAB 在现代科学计算中的应用
曲线拟合
MATLAB中,提供了解决使用最小二乘法进行曲线 拟合的函数。调用格式为:
[P,S]=polyfit(X,Y,m) 函数根据采样点X和采样点函数值Y,产生一个m次
多项式P及其在采样点的误差向量S。 其中X、Y是两个等长的向量,P是一个长度为m+1的
x=0:0.1:10;y=0:0.2:20;
[X,Y]=meshgrid(x,y);
Z=X.^2+Y.^2; interp2(x,y,Z,0.5,0.5) %对函数在(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)点
max(A,[],2) %求每行最大元素
min(A,[],2) %求每行最小元素
max(A)
%求每列最大元素
min(A)
%求每列最小元素
max(max(A)) %求整个矩阵的最大元素
min(min(A)) %求整个矩阵的最小元素
第3章 MATLAB 在现代科学计算中的应用
2. 求矩阵的平均值和中值 求矩阵和向量元素的平均值的函数是mean,求中值
命令如下:
P=[3,0,4,-5,-7.2,5];
X=roots(P)
%求方程f(x)=0的根
G=poly(X)
%求多项式g(x)
X0=[5,7.8,9.6,12.3];
f=polyval(P,X0)
练习:把1开5次方,并求其全部5个根。
第3章 MATLAB 在现代科学计算中的应用
4. 多项式的四则运算 (1)多项式的加减法 (2)多项式的乘法 函数conv(P1,P2)用于求多项式P1和P2的乘积。 (3)多项式的除法 函数[Q,r]=deconv(P1,P2)用于对多项式P1和P2作除法
第3章 MATLAB 在现代科学计算中的应用
MATLAB中有一个专门的三次样条插值函数 Y1=spline(X,Y,X1),其功能及使用方法与函数 Y1=interp1(X,Y,X1,'spline')完全相同。
第3章 MATLAB 在现代科学计算中的应用
2. 二维数值插值 MATLAB中,提供了解决二维插值问题的函数。其
第3章 MATLAB 在现代科学计算中的应用
5. 标准方差 MATLAB中,提供了计算数据序列的标准方差的函数
std。对于向量X,std(X)返回一个标准方差。对于矩 阵A,std(A)返回一个行向量,它的各个元素便是矩阵 A各列的标准方差。std函数的一般调用格式为:
std(A) 例3 产生8×6阶的正态分布随机数矩阵R,求其各列的
存入p,分母存入q。
第3章 MATLAB 在现代科学计算中的应用
函数的最大值与最小值
MATLAB中用于求最小值的函数是: fmin(f,a,b) 求单变量函数f(x)在区间(a,b)上的最小值。 fmins(F,X0) 求多变量函数F(x)在估计值X0附近的最
小值点。
第3章 MATLAB 在现代科学计算中的应用
元素的序号存入I。
第3章 MATLAB 在现代科学计算中的应用
(2)求矩阵的最大和最小元素 ①max(A) 返回一个行向量,向量的第i个元素是A矩
阵的第i列上的最大元素。 ②[Y,U]=max(A) 返回两个行向量,Y向量记录A的每
列的最大元素,U向量记录每列最大元素的行号。 ③max(A,[],dim) dim取1或2。dim取1时,该函数和
%对A按列排序,并将每个元素所在行
第3章 MATLAB 在现代科学计算中的应用
数值插值
1. 一维数值插值
interp1函数调用格式为:
Y1=interp1(X,Y,X1,'method')
函数根据X、Y的值,计算函数在X1处的值。X、Y是两 个等长的已知向量,分别描述采样点和样本值,X1是 一个向量或标量,描述欲插值的点,Y1是一个与X1 等长的插值结果。method是插值方法,允许的取值有 'linear'(线性插值)、'nearest'(最近插值)、'spline'(三次 样条插值)、'cubic'(三次多项式插值),缺省值是 'linear'。
max(A)完全相同。dim取2时,该函数返回一个列 向量,其第i个元素是A矩阵的第i行上的最大元素。
第3章 MATLAB 在现代科学计算中的应用
(3)两个向量或矩阵对应元素的比较
①U=max(A,B) A,B是两个同型的向量或矩阵。结果 U是与A,B同型的向量或矩阵,U的每个元素等于 A,B对应元素的较大者。
第3章 MATLAB 在现代科学计算中的应用
多项式计算
1. 多项式的建立 已知一个多项式的全部根X求多项式系数的函数是
poly(X),该函数返回以X为全部根的一个多项式P, 当X是一个长度为m的向量时,P是一个长度为m+1 的向量。
2. 多项式求根 求多项式p(x)的根的函数是roots(P),这里,P是p(x)的