MATLAB多项式与符号运算

上传人:c****d 文档编号:243017690 上传时间:2024-09-13 格式:PPT 页数:32 大小:121.50KB
返回 下载 相关 举报
MATLAB多项式与符号运算_第1页
第1页 / 共32页
MATLAB多项式与符号运算_第2页
第2页 / 共32页
MATLAB多项式与符号运算_第3页
第3页 / 共32页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,MATLAB的数值计算, matlab,具有出色的数值计算能力,占据世界上数值计算软件的主导地位,1,matlab语言把多项式表达成一个行量,,该向量中的元素是按多项式,降幂,排的。,f(x)=a,n,x,n,+a,n-1,x,n-1,+loa,0,可用行向量 p=a,n,a,n-1, a,1,+a,0,表示,如:a(x)=2x,3,+4x,2,+6x+8; 对应a=2,4,6,8;,b(x)= 2x,3,+6x+8; b=?,多项式运算,2,函数1:ploy2str(),作用:生成多项式表达式的字符串,p =1.00,-6.00,-72.00,-27.00;,p是多项式,p(x)=x,3,-6x,2,-72x-27,的matlab描述方法,我们可用:,a=poly2str(p,x),显示数学多项式的形式,a=x3 - 6 x2 - 72 x 27,并将表达式的结果以字符串的形式赋值给变量a,3,函数2:roots(),作用: 求多项式的根,a=1,-3,2; %对应多项式x,2,-3x+2,%若求 方程x,2,-3x+2=0的根,x=roots(a),则x =,2,1,matlab规定多项式系数向量用行向量表示,一组根用列向量表示。,4,多项式加减运算,计算a(x)+b(x),如:2x,3,+4x,2,+6x+8 3x,2,+6x+9,则:a=2,4,6,8; b=3,6,9,b=0,3,6,9,c=a+b =2,7,12,17, 2x,3,+7x,2,+612x+17,编写子程序文件自动完成两多项式加减运算,5,函数文件:,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用最小二乘法找一个准确地基本解。,13,例: x,1,+2x,2,=1,2x,1,+3x,2,=2,3x,1,+4x,2,=3,a=1 2;2 3;3 4;b=1;2;3;,解1,x=ab,解2,x=inv(a,a),a,b,x = x =,1.00 1.00,0 0.00,=,a x = b,14,3.欠定方程组的解,当方程数少于未知量个数时,即不定,情况,有无穷多个解存在。,matlab可用两种方法求解:,方法1,:用除法求的解x是具有最多零元素的解,x=ab,方法2,:是具有最小长度或范数的解,这个解是基于伪逆pinv求得的。,x=pinv(a),b,15,x,1,+2x,2,+3x,3,=1,2x,1,+3x,2,+4x,3,=2,a=1 2 3;2 3 4;b=1;2;,x=ab x=pinv(a),b,x = x =,1.00 0.83,0 0.33,0 -0.17,=,a x = b,16,多项式拟合,原理,:MATLAB通过给定的离散点,找一个n次多项式,使所有离散点到多项式曲线的距离的平方和最小。,准则,:最小二乘法,拟合函数,:p=polyfit(x,y,n),其中x、y为离散数据点的坐标向量,n为拟合次数,即用n次多项式拟合,p为n次多项式的系数,17,拟合程序例1:,将下列离散点用直线拟合,并绘制:,(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,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,18,插值拟合,(1)插值的定义是在给定的原始数据点之间用某些特定的数学算法插入一些数据点,当原始数据点和插入数据点连线后得到穿过原始数据点的光滑曲线。,(2)当不能很快地求出所需中间点的函数时,插值是一个非常有价值的工具。,(3)Matlab提供了线性插值、三次插值和三次样条插值3种选择。,直线插值:在原始数据点之间用直线拟合,三次插值及三次样条插值:在原始数据点之间用三次多项式曲线分段连接,19,三次插值和三次样条插值的区别,样条插值得到的曲线一阶、二阶导数连续,而一般的三次插值可能会有一阶和二阶导数的间断,在有些问题如高速飞机的机翼外形、内燃机进排气门的凸轮曲线上不允许出现这样的情况,必须用样条插值。,20,插值函数,:interp1,调用格式,:interp1(x,y,xi,method),其中:,(1)x、y为离散数据的坐标向量,要求长度必须相同,(2)xi为插入点的数据向量,(3)Method为插值方法,为字符串变量,有三种方法供选择:,linear、cubic、spline,分别表示线性插值、三次插值和三次样条插值,21,曲线拟合例题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,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);,22,MATLAB在积分求导运算中的应用,(1)求单重积分,调用格式:,q1=quad(被积函数表达式,积分下限,积分上限),注意:函数表达式中运算符前面加“,.,”,例:求积分,q1=quad(4*cos(2*t).2+sin(t).2,0,3*pi);,23,(2)双重积分,调用格式:,q2=dblquad(被积函数表达式,xmin,xmax,ymin,ymax);,注意:函数表达式中运算符前面加“,.,”,例:求,q2=dblquad(y.*sin(x)+x.*cos(y),3*pi,4*pi,pi,2*pi),24,用符号变量运算求积分,(1)用符号变量求不定积分,调用格式:int(被积函数表达式,被积变量),例:,syms x y z; %表示声明3个符号变量x、y、z,%,注意:变量用空格隔开,int(sin(x*y+z),x),因为是符号变量运算,所以运算符前不用加“,.,”,25,(2)用符号变量求定积分,调用格式:int(被积函数表达式,被积变量,积分下限,积分上限),例:syms x;,a=int(cos(x),0,pi/6),例:syms x y;,b=int(xy,y,0,pi/6),pretty(b),注:pretty()可以使结果更加整齐,26,(3)用符号变量求广义积分,当积分限某一具体数值变为正负无穷时定积分转变为广义积分,在MATLAB中也只需将积分限变为inf或-inf即可。,例:求函数g(x)=1/(1+x,2,)在1到正无穷的广义积分,程序:syms x;,g=1/(1+x2);,int(g,1,inf),例:求函数f(x)=1/(x,2,+2x+3)在负无穷到正无穷的广义积分,程序:syms x;,f=1/(x2+2*x+3);,int(f,-inf,inf),27,函数的求导,1、求一次导数,函数的导数可有diff命令来完成,格式为diff(f),例: syms x %表示将x声明为符号变量,对x进行符号运算,也就是把x作为函数的自变量,f=log(x); %将x的函数表达式赋值给f变量,result=diff(f),注意:因为是符号变量运算,所以运算符前不用加“,.,” 如:f=2*x2,28,多项式求导与符号运算求导的区别,(1)多项式求导例子,a=1,2,3; % x,2,+2x+3,polyder(a),结果:ans = 2 2 %代表2x+2,(2) syms x;,f=x2+2*x+3;,diff(f),结果:ans=2*x+2,29,例:求f(x)=(x+e,x,sinx),1/2,的导数,程序,syms x;,f=(x+exp(x)*sin(x) )(1/2),diff(f),pretty(ans),30,2、求高阶导数,格式:diff(f,n) 其中n为求导的阶数,例:求y=e,-2x,cos(3x,1/2,)的4阶导数,程序:,syms x;,y=exp(-2*x)*cos(3*(x)(1/2),diff(y,4),pretty(ans),31,3、多元函数求导,调用格式:,diff(函数表达式,被求导变量,n),例:syms x y z; %,注意:变量用空格隔开,f=x*sin(exp(y)/z;,diff(f,y,2),pretty(ans),32,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


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

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


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