数学软件matlab

上传人:艾力 文档编号:49133446 上传时间:2018-07-24 格式:PPT 页数:22 大小:296.50KB
返回 下载 相关 举报
数学软件matlab_第1页
第1页 / 共22页
数学软件matlab_第2页
第2页 / 共22页
数学软件matlab_第3页
第3页 / 共22页
数学软件matlab_第4页
第4页 / 共22页
数学软件matlab_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《数学软件matlab》由会员分享,可在线阅读,更多相关《数学软件matlab(22页珍藏版)》请在金锄头文库上搜索。

1、数学软件 Matlab 多项式运算 代数方程求解1l 多项式转化为符号表达式:poly2syml 四则运算:conv、deconvl 导数与积分:ployder、polyintl 求值与零点:polyval、polyvalm、roots、polyn 多项式运算内容提要n 代数方程求解l 线性方程组数值求解:linsolvel 非线性方程数值求解:fzero l 非线性方程符号求解:solve2多项式表示方法l 在 Matlab 中,n 次多项式用一个长度为 n+1的向量来表示在 Matlab中表示为向量:注:系数中的零不能省!例: 2x3 - x2 + 32, -1, 0, 3l Matlab

2、 中多项式的表示方法l 多项式与符号表达式的互化:poly2sym, sym2polypoly2sym(2,-1,0,3)例:3多项式加减l Matlab 没有提供专门进行多项式加减运算的函数 l 多项式的加减就是其所对应的系数向量的加减运算l 次数相同的多项式,可直接对其系数向量进行加减运算l 如果两个多项式次数不同,则应该把低次多项式中系数不 足的高次项用 0 补足,然后再进行加减运算 例:p1 = 2x3 - x2 + 3p2 = 2x + 1 p1 + p2 = 2x3 - x2 + 2x + 42, -1, 0, 32, 10, 0, 2, 12, -1, 2, 4l 多项式加减运算

3、4多项式乘除k=conv(p,q)例:计算多项式 2x3 - x2 + 3 和 2x + 1 的乘积p=2,-1,0,3; q=2,1; k=conv(p,q) l 多项式除法运算:k,r=deconv(p,q)l 其中 k 返回的是多项式 p 除以 q 的商,r 是余式k,r=deconv(p,q)p=conv(q,k)+rl 多项式乘法运算:5多项式求导k1=polyder(2,-1,0,3); k2=polyder(2,-1,0,3,2,1); k3,d=polyder(2,-1,0,3,2,1);例:已知 p1(x) = 2x3 - x2 + 3,p2(x) = 2x + 1求: p1

4、,( p1 p2 ), ( p1 /p2 )l 多项式求导: polyderk=polyder(p)多项式 p 的导数k=polyder(p,q) p*q 的导数k,d=polyder(p,q)p/q 的导数,k 是分子,d 是分母6多项式积分l 多项式积分: polyintI=polyint(p,c)不定积分,常数项取 cI=polyint(p) 不定积分,常数项取 0I=polyint(2,-1,0,3,5); 例:已知 p(x) = 2x3 - x2 + 3求 ,常数项取 57多项式求值l 多项式求值: polyvaly=polyval(p,x)计算多项式 p 在 x 点的值l 这里的

5、x 可以是向量或矩阵,此时采用的是数组运算!p=2,-1,0,3; x=2; y=-1, 2; -2,1; z1=polyval(p,x) z2=polyval(p,y)例:已知 p(x) = 2x3 - x2 + 3,计算 p 在 x 和 y 的每个分量上的值,其中 x=2, y=-1,2; -2,18矩阵多项式求值l 矩阵多项式求值: polyvalmY=polyvalm(p,A)计算多项式 p 作用在矩阵 A 上的值l 这里的 A 必须是方阵,采用的是普通矩阵运算!例:已知 p(x) = 2x3 - x2 + 3 ,则polyvalm(p,A)=2*A*A*A - A*A + 3*eye

6、(size(A) polyval(p,A) = 2*A.*A.*A - A.*A + 3*ones(size(A)p=1,0,0; % p(x)=x2 x=1, 2; 3, 4; y1=polyval(p,x) y2=polyvalm(p,x)9多项式的零点l 多项式的零点: rootsx=roots(p)计算多项式 p 的所有零点l 这里的 x 是由 p 的所有零点组成的向量例:已知 p(x) = 2x3 - x2 + 3 ,求 p(x) 的零点p=2,-1,0,3; x=roots(p)l 若已知多项式的全部零点,则可用 poly 函数给出该多项式p=poly(x)10k=conv(p,q

7、) k,r=deconv(p,q)k=polyder(p)k=polyder(p,q) k,d=polyder(p,q)y=polyval(p,x)Y=polyvalm(p,A)x=roots(p)多项式运算小结多项式运算中,使用的是多项式系数向量,不涉及符号计算!poly2sym(p), sym2poly(f), poly(x)I=polyint(p,c)I=polyint(p)11l 多项式转化为符号表达式:poly2sym, sym2polyl 四则运算:conv、deconvl 导数与积分:ployder、polyintl 求值与零点:polyval、polyvalm、roots、po

8、lyn 多项式运算内容提要n 代数方程求解l 线性方程组数值求解:linsolvel 非线性方程数值求解:fzero l 非线性方程符号求解:solve12线性方程组求解l 线性方程组求解: linsolvex=linsolve(A,b)解线性方程组 Ax = b例:解方程组A=1 2 -1; 1 0 1; 1 3 0; b=2; 3; 8; x=linsolve(A,b)l 注意:这里的右端项 b 必须是列向量!13非线性方程求解l 非线性方程求解: fzerol 方程可能有多个根,但 fzero 只给出 x0 附近的一个l x0 是一个标量,为参考点,不能缺省l fzero 先找出一个包含

9、 x0 的区间,使得 f 在这个区间的两个端点上的函数值异号,然后再在这个区间内寻找方程f(x)=0 的解;如果找不到这样的区间,则返回 NaNl 由于 fzero 是根据函数是否穿越横轴来决定零点,因此它无法确定函数曲线仅触及横轴但不穿越的零点,如 |sin(x)|l f(x)=0 在 a,b 内可能有多个解,但 fzero 只给出一个x=fzero(f,x0)求方程 f(x)=0 在 x0 附近的一个解x=fzero(f,a,b) 找出区间 a,b 内的一个解14非线性方程求解l 非线性方程求解: fzerox=fzero(f,x0)求方程 f(x)=0 在 x0 附近的一个解x=fzer

10、o(f,a,b) 找出区间 a,b 内的一个解l 参数 f 是一个函数句柄,可通过以下方式给出l 匿名函数,如:f=(x) x3-3*x+1l 函数文件(略)注意:f 不是方程!也不能使用符号表达式!15fzero(sin,10)用 fzero 求零点时可以先通过作图确定零点的大致范围例:求 f(x)=x3-3x+1 在区间 -2, 0 内的实根。fzero 举例f=(x) x3-3*x+1; x0=fzero(f,-2,0)例:求 f(x)=sin(x) 在 10 附近的实根。16代数方程符号求解l 代数方程符号求解: solves=solve(f,v)关于指定自变量求解s=solve(f)

11、 关于默认变量求解l 参数 f 是一个符号表达式 l 也可以是用等号 = 连接的方程(Matlab新版本)例:解方程 x3 - 3x + 1=0syms x; f=x3-3*x+1; sol=solve(f,x) % 或 s=solve(f)syms x; sol=solve(x3-3*x+1=0,x) % MatlabR2012版本17代数方程符号求解l solve 也可以用来解方程组solve(f1,f2, .,fN, v1,v2, .,vN)l 求由 f1 , f2 , . , fN 确定的方程组关于 v1 , v2 , . , vN 的解例:解方程组syms x y z; s1,s2,

12、s3= .solve(x+2*y-z-27, x+z-3, x2+3*y2-28, x,y,z)l 注意输出变量的对应顺序! l 如果得不到解析解, solve 会给出数值解18roots(p):多项式的所有零点,p 是多项式系数向量fzero(f,x0):求 f(x)=0 在 x0 附近的一个根,f 是函数句柄,可以通过匿名函数或函数文件来定义,但不能是方 程或符号表达式!solve(f,v):求方程关于指定自变量的解,f 是符号表达式或符号方程; l solve 也可解方程组 (包含非线性) l 得不到解析解时,给出数值解linsolve(A,b):解线性方程组求解方程函数小结19上机作业

13、2、已知多项式 (a) 求出 p(x) 的所有零点; (b) 用 fzero 计算 p(x) 的第二大零点3、求方程组 的解1、已知多项式计算 及它们的导数 ( 将所用命令写入文件 m61.m ) ( 将所用命令写入文件 m62.m ) ( 将所用命令写入文件 m63.m ) 20上机作业4、已知 Chebyshev 多项式定义如下:5、编写一个函数文件: m65.m,实现两个向量的加运算( 在长度较短的向量前面添 0,使得两个向量长度相等)试编程计算 T20(x) 的导数(注:Tn(x) 为 n 阶多项式)(将程序取名为 m64.m ) (注:要求利用多项式运算,不要使用符号计算!) 21上机要求l 将所有文件作为附件,通过 foxmail 以邮件形式发给mhjssystem.maill 邮件主题为:机号-学号-姓名,其中机号为 两位数l 三个字段之间用英文状态下的减号连接l 每个 M 文件的第一行添加一条注解语句:% 机号-学号-姓名q 上机要求22

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号