Matlab 第四章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

p1_minus_p2= temp_p1-p2;
else
3
temp_p2=[zeros(length_of_p1-length_of_p2) p2];
p1_plus_p2=p1+ temp_p2;
p1_minus_p2=p1- temp_p2;
end
p1_multiply_p2=conv(p1,p2);
2
例4-1 编写脚本文件,实现多项式的四则运算。
>> %polynomial operation
>> p1=[1,2,1];
%定义多项式
>> p2=[1,1];
>> length_of_p1=length(p1);
>> length_of_p2=length(p2);
>> if length_of_p1==length_of_p2 %判断两个多项式的长
功能 多项式求根 多项式求值 矩阵多项式求值 多项式求导 求矩阵的特征多项式;或者求一个多项 式,其根为指定的数值 多项式曲线拟合 求解余项
5
有时不仅多项式运算,还需要根据已知数据推断未知数据,即需 要数据插值。MATLAB提供了对数组的任意一维进行插值的工具, 这些工具大多需要用到多维数组的操作。一维插值在曲线拟合和数 据分析中具有重要的地位。在MATLAB中,一维插值主要是用interp 函数实现。该函数的调用格式:
度是否相等
p1_plus_p2=p1+p2;
%多项式相加
p1_minus_p2=p1-p2;
%多项式相减
elseif length_of_p1<length_of_p2
temp_p1=[zeros(length_of_p2-length_of_p1) p1];
p1_plus_p2= temp_p1+p2;
yi=interp1(x,y,xi,method)
其 中 , x 、 y 分 别 为 采 用 数 据 的 x 和 y 坐 标 , xi 为 待 插 值 的 位 置 , method为采用的插值方法。该语句返回函数在点xi处的插值结果。 参数method可以选择的方法如表:
参数 ‘nearest’ ‘linear’ ‘spline’ ‘hchip’或 ‘cubic’
7
4.2 数值积分
这里主要讲的是一元函数积分、二重积分和三重积分。
MATLAB中一元函数对的积分用quad和quadl实现,调用格式:
q=quad(fun,a,b), 采 用 递 归 自 适 应 方 法 计 算 fun 函 数 在 区 间 [a,b] 上 的 积 分 。 q=quad(fun,a,b),指定允许的误差,该命令运行更快,但结果精确度低。 q=quad(fun,a,b,tol,trace),跟踪迭代过程,分别为计算机函数值的次数、当前 积分区间的左边界、步长和该区间的积分值。 [q,fcnt]=quadl(fun,a,b,…),输出函数值的同时输出计算函数值的次数。 MATLAB中二重积分和三重积分分别由dblquad函数和triplequad函数来实现。 二重积分调用格式: q=dblquad(fun,xmin,xmax,ymin,ymax),函数的参数分别为函数句柄、两个自 变量的积分限,返回积分结果。 q=dblquad(fun,xmin,xmax,ymin,ymax,tol),指定积分结果的精度。 q=dblquad ( fun,xmin,xmax,ymin,ymax,tol,method ) , 指 定 结 果 精 度 和 积 分 方法,method的取值可以是@quadl,也可以是用户自定义的积分函数句柄, 该函数的调用格式必须与quad函数的调用格式相同。
10
例题
%Set the values for initial speed, gravity,and angle.(设置初始速率、重力加 速度、角度的值) v0=20;g=9.81;A=40*pi/180; %Compute the time to hit.(计算碰撞时间) t_hit=2*v0*sin(A)/g; %Compute the arrays containing time,height,and speed.(计算包含时间、 高度和速率的数组) t=[0:t_hit/100:t_hit]; h=v0*t*sin(A)-0.5*g*t.^2; v=sqrt(v0^2-2*v0*g*sin(A)*t+g^2*t.^2); %Determine when the height is no less than 6,(确定当高度低于6米) %and the speed is no greater than 16.(并且速度不大于16) u=find(h>=6&v<=16); %Compute the corresponding times.(计算对应的时间) t_1=(u(1)-1)*(t_hit/100); t_2=u(length(u)-1)*(t_hit/100) 结果是t1= 0.8649和t2= 1.7560。在这两个时间之间,h>=6m和v<=16m/s。
对应方法 最近邻插值 线性插值 三次样条插值 三次插值
6
fzero函数可以用来寻找一元函数的零点,要先指定一个初
始点或者一个区间。该函数调用格式如下: x=fzero(fun,x0), x=fzero(fun,[x1,x2]):用来寻找x0附近或者 区间内fun的零点,返回该点的x坐标。 x=fzero(fun,x0,options), x=fzero(fun,[x1,x2],options):设置options参数。 [x,fval]=fzero(…):返回零点的同时返回该点的函数值。 [x,fval,exitflag]=fzero(…):返回零点、该点的函数值及程序退 出的标志。 [x,fval,exitflag,output]=fzero(…):返回零点、该点的函数值、 程序退出的标志及选定的输出结果。
p1_multiply_p2=poly2sym(p1_multiply_p2)
p1_divide_p2 =poly2sym(p1_divide_p2)
4
除了四则运算之外,其他一些函数名称和功能如下表:
函数 roots polyval polyvalm polyder poly
polyfit residue
%多项式相乘
p1_divide_p2 =deconv(p1,p2);
%多项式除法
p1=poly2sym(p1)
%显示多项式p1源自文库
p2=poly2sym(p2)
%显示多项式p2
p1_plus_p2=poly2sym(p1_plus_p2)
p1_minus_p2=poly2sym(p1_minus_p2)
1
四则运算
因为多项式可以用向量来表示,多项式的四则运算也可以转 化为向量的运算。多项式的加减对应项系数的加减,即向量的 加减。但向量加减之前必须保证两个向量需要有相同的长度, 因此在进行多项式加减时,需要将短的向量前面补0。多项式的 乘法运算就是多项式系数向量之间的卷积运算,即用conv函数。 多项式的除法运算时乘法的逆运算,可以通过反卷积函数 deconv()来实现。
多项式的表示 在MATLAB中,多项式用一个行向量表示,向量中的元素为
该多项式的系数,按照降序排列。如多项式9+7+4x+3可以表示 为向量p=[9 7 4 3]。用户可用创建 向量的方式创建多项式,再 将其显示为多项式,如: >> p=[9 ,7,4,3]; >> y=poly2sym(p) y= 9*x^3 + 7*x^2 + 4*x + 3
8
例4-2 dblquad函数积分应用。
>> F=@(x,y)y*sin(x)+x*cos(y); >> Q=dblquad(F,pi,2*pi,0,pi)
Q= -9.8696
9
例题
例4-1 一个抛射物的高度和速率。以速率v。、水平夹 角A投掷的哟个抛射物(例如一个球),其高度和速率为:
h(t)= tsinA-0.5g v(t)= 其中,g是重力加速度。当h(t)=0时,抛射物将撞击到 地面,并由此可以得到撞击时间: = 2(。假设A= 、 =20m/s和g= 9.81m/。使用MATLAB关系运算符和逻辑 运算符找出当高度低于6米并且在速率不大于16m/s时 的撞击时间
Matlab 程序设计及在土木工程中的应用
主讲人:张静 副教授 合肥工业大学土木与水利学院桥梁工程系
2015.09
第四章 MATLAB的数学运算
本章主要内容
4.1 多项式与插值 4.2 条件语句 4.3 Switch 结构 4.4 循环结构
4.1 多项式与插值
现在MATLAB中专门用于处理多项式的函数能够解决很多工程 和应用经常遇到的问题,用户可以应用这些函数对多项式进行 操作。MATLAB中对多项式的操作包括多项式求根、多项式的 四则运算及多项式的微积分。
11
Thank you!
相关文档
最新文档