MATLAB多项式与符号运算.ppt

上传人:xin****828 文档编号:17781810 上传时间:2020-12-05 格式:PPT 页数:32 大小:242.50KB
收藏 版权申诉 举报 下载
MATLAB多项式与符号运算.ppt_第1页
第1页 / 共32页
MATLAB多项式与符号运算.ppt_第2页
第2页 / 共32页
MATLAB多项式与符号运算.ppt_第3页
第3页 / 共32页
资源描述:

《MATLAB多项式与符号运算.ppt》由会员分享,可在线阅读,更多相关《MATLAB多项式与符号运算.ppt(32页珍藏版)》请在装配图网上搜索。

1、 MATLAB的数值计算 matlab 具有出色的数值计 算能力,占据世界上数值计算软 件的主导地位 matlab语言把多项式表达成一个行量, 该向量中的元素是按多项式 降幂 排的。 f(x)=anxn+an-1xn-1+ +loa0 可用行向量 p=an an-1 a1 +a0表示 如: a(x)=2x3+4x2+6x+8; 对应 a=2,4,6,8; b(x)= 2x3+6x+8; b=? 多项式运算 函数 1: ploy2str() 作用:生成多项式表达式的字符串 p =1.00,-6.00,-72.00,-27.00; p是多项式 p(x)=x3-6x2-72x-27的 matlab描

2、述方法,我们可用: a=poly2str(p,x)显示数学多项式的形式 a=x3 - 6 x2 - 72 x 27 并将表达式的结果以字符串的形式赋值给变量 a 函数 2: roots() 作用: 求多项式的根 a=1,-3,2; %对应多项式 x2-3x+2 %若求 方程 x2-3x+2=0的根 x=roots(a) 则 x = 2 1 matlab规定多项式系数向量用行向量表示, 一组根用列向量表示。 多项式加减运算 计算 a(x)+b(x) 如: 2x3+4x2+6x+8 3x2+6x+9 则: a=2,4,6,8; b=3,6,9 b=0,3,6,9 c=a+b =2,7,12,17

3、2x 3+7x2+612x+17 编写子程序文件自动完成两多项式加减运算 函数文件: function y=polyadd(x1,x2) n1=length(x1); n2=length(x2); if n1n2 x2=zeros(1,n1-n2),x2; elseif n1n时,此方程成为 “ 超定 ” 方程 当 mn时此时不存在唯一解。 方法 1: 方程解 (a a)x=a b x=(a a)-1 a b 求逆法 思考为什么不能 x=inv(a)*b? 方法 2: x=ab matlab用最小二乘 法找一个准确地基本解。 例 : x1+2x2=1 2x1+3x2=2 3x1+4x2=3 a

4、=1 2;2 3;3 4;b=1;2;3; 解 1 x=ab 解 2 x=inv(aa) a b x = x = 1.00 1.00 0 0.00 2 1 x x 3 2 1 = 43 32 21 a x = b 3.欠定方程组的解 当方程数少于未知量个数时 ,即不定 情况 ,有无穷多个解存在。 matlab可用两种方法求解: 方法 1:用除法求的解 x是具有最多零元素 的解 x=ab 方法 2:是具有最小长度或范数的解,这个 解是基于伪逆 pinv求得的。 x=pinv(a)b x1+2x2+3x3=1 2x1+3x2+4x3=2 a=1 2 3;2 3 4;b=1;2; x=ab x=pi

5、nv(a)b x = x = 1.00 0.83 0 0.33 0 -0.17 432 321 3 2 1 x x x 2 1= a x = b 多项式拟合 原理 : MATLAB通过给定的离散点,找一 个 n次多项式,使所有离散点到多项式 曲线的距离的平方和最小。 准则 :最小二乘法 拟合函数 : p=polyfit(x,y,n) 其中 x、 y为离散数据点的坐标向量, n为拟 合次数,即用 n次多项式拟合, p为 n次 多项式的系数 拟合程序例 1: 将下列离散点用直线拟合,并绘制: (0,11.2)、 (0.2,16.5)、 (0.4,20.4)、 (0.6,26.3)、 (0.8,30

6、.5)、 (1,28.7) 编程: x=0:0.2:1; y=11.2,16.5,20.4,26.3,30.5,28.7; a=polyfit(x,y,1); %即用 a1x+a2的直线表达式拟合 %下面开始绘制已经求出的直线 a1x+a2 xi=linspace(0,1,50); yi=polyval(a,xi); %将 xi的每一个元素作为横坐标带入 a1x+a2的表达式中,得出 xi对应的纵坐标 并赋给 yi plot(x,y, o,xi,yi,b); 注意:当拟合次数过高时,会造成曲线的振荡 拟合的次数不允许超过点数,即此例中 n=5 插值拟合 ( 1)插值的定义 是在给定的原始数据点

7、之间用某些 特定的数学算法插入一些数据点,当原始数据点和插入数 据点连线后得到穿过原始数据点的光滑曲线。 ( 2)当不能很快地求出所需中间点的函数时,插值是一 个非常有价值的工具。 ( 3) Matlab提供了线性插值、三次插值和三次样条插值 3 种选择。 直线插值:在原始数据点之间用直线拟合 三次插值及三次样条插值:在原始数据点之间用三 次多项式曲线分段连接 三次插值和三次样条插值的区别 样条插值得到的曲线一阶、二阶导数连 续,而一般的三次插值可能会有一阶和 二阶导数的间断,在有些问题如高速飞 机的机翼外形、内燃机进排气门的凸轮 曲线上不允许出现这样的情况,必须用 样条插值。 插值函数 :

8、interp1 调用格式 : interp1(x,y,xi,method) 其中: (1)x、 y为离散数据的坐标向量,要求长度 必须相同 (2)xi为插入点的数据向量 (3)Method为插值方法,为字符串变量 有三种方法供选择: linear、 cubic、 spline 分别表示线性插值、三次插值和三次样条插值 曲线拟合例题 2: 将下列离散点用三次样条插值拟合,并绘制: (0,11.2)、 (0.2,16.5)、 (0.4,20.4)、 (0.6,26.3)、 (0.8,30.5)、 (1,28.7) 程序: x=0:0.2:1; y=11.2,16.5,20.4,26.3,30.5,

9、28.7; xi=linspace(0,1,20); yi=interp1(x,y,xi,spline); %yi=interp1(x,y,xi,linear); %表示线性插值 %yi=interp1(x,y,xi,cubic); %表示三次插值 plot(x,y,o,xi,yi,b); MATLAB在积分求导运算中的应用 ( 1)求单重积分 调用格式: q1=quad(被积函数表达式 ,积分下限 ,积分上限 ) 注意:函数表达式中运算符前面加 “ .” 例:求积分 q1=quad(4*cos(2*t).2+sin(t).2,0,3*pi); 30 22 )(s in)2(c o s4 dt

10、tt (2)双重积分 调用格式: q2=dblquad(被积函数表达式 ,xmin,xmax,ymin,ymax); 注意:函数表达式中运算符前面加 “ .” 例:求 q2=dblquad(y.*sin(x)+x.*cos(y),3*pi,4*pi,pi,2*pi) 2 43 )s ins in( d x d yyxxy 用符号变量运算求积分 (1)用符号变量求不定积分 调用格式: int(被积函数表达式,被积变量 ) 例: syms x y z; %表示声明 3个符号变量 x、 y、 z %注意:变量用空格隔开 int(sin(x*y+z),x) 因为是符号变量运算,所以运算符前不用加 “

11、.” ( 2)用符号变量求定积分 调用格式: int(被积函数表达式,被积变量,积分下限,积分上限 ) 例: syms x; a=int(cos(x),0,pi/6) 例: syms x y; b=int(xy,y,0,pi/6) pretty(b) 注: pretty()可以使结果更加整齐 (3)用符号变量求广义积分 当积分限某一具体数值变为正负无穷时定积分转变为广 义积分,在 MATLAB中也只需将积分限变为 inf或 -inf即可。 例:求函数 g(x)=1/(1+x2)在 1到正无穷的广义积分 程序: syms x; g=1/(1+x2); int(g,1,inf) 例:求函数 f(x

12、)=1/(x2+2x+3)在负无穷到正无穷的广义积分 程序: syms x; f=1/(x2+2*x+3); int(f,-inf,inf) 函数的求导 1、求一次导数 函数的导数可有 diff命令来完成 格式为 diff(f) 例: syms x %表示将 x声明为符号变量,对 x进行符号运算,也就是把 x作为函数的自变量 f=log(x); %将 x的函数表达式赋值给 f变量 result=diff(f) 注意:因为是符号变量运算,所以运算符前不用 加 “ .” 如: f=2*x2 多项式求导与符号运算求导的区别 (1)多项式求导例子 a=1,2,3; % x2+2x+3 polyder(

13、a) 结果: ans = 2 2 %代表 2x+2 (2) syms x; f=x2+2*x+3; diff(f) 结果: ans=2*x+2 例:求 f(x)=(x+exsinx)1/2的导数 程序 syms x; f=(x+exp(x)*sin(x) )(1/2) diff(f) pretty(ans) 2、求高阶导数 格式: diff(f,n) 其中 n为求导的阶数 例:求 y=e-2xcos(3x1/2)的 4阶导数 程序: syms x; y=exp(-2*x)*cos(3*(x)(1/2) diff(y,4) pretty(ans) 3、多元函数求导 调用格式: diff(函数表达式,被求导变量, n) 例: syms x y z; %注意:变量用空格隔 开 f=x*sin(exp(y)/z; diff(f,y,2) pretty(ans)

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!