MATLAB多项式与符号运算

上传人:平*** 文档编号:47668901 上传时间:2018-07-03 格式:PPT 页数:32 大小:242.85KB
返回 下载 相关 举报
MATLAB多项式与符号运算_第1页
第1页 / 共32页
MATLAB多项式与符号运算_第2页
第2页 / 共32页
MATLAB多项式与符号运算_第3页
第3页 / 共32页
MATLAB多项式与符号运算_第4页
第4页 / 共32页
MATLAB多项式与符号运算_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《MATLAB多项式与符号运算》由会员分享,可在线阅读,更多相关《MATLAB多项式与符号运算(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描述方法,我们可用: a=poly

2、2str(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 =21matlab规定多项式系数向量用行向量表示,一组根用列向量表示。多项式加减运算计算a(x)+b(x) 如:2x3+4x2+6x+8 3x2+6x+9 则:a=2,4,6,8; b=3,6,9b=0,3,6,9c=a+b =2,7,12,17 2x3+7x2+612x+17 编写子程序文件自动完成两多项式加减运 算函数

3、文件: function y=polyadd(x1,x2)n1=length(x1);n2=length(x2);if n1n2x2=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=23x1+4x2=3a=1 2;2 3;3 4;b=1;2;3;解1 x=ab 解2 x=inv(aa) a b x = x =1.00

4、1.000 0.00 =a x = b3.欠定方程组的解当方程数少于未知量个数时,即不定 情况,有无穷多个解存在。 matlab可用两种方法求解: 方法1:用除法求的解x是具有最多零元 素的解 x=ab 方法2:是具有最小长度或范数的解,这 个解是基于伪逆pinv求得的。x=pinv(a)bx1+2x2+3x3=12x1+3x2+4x3=2a=1 2 3;2 3 4;b=1;2;x=ab x=pinv(a)b x = x =1.00 0.830 0.330 -0.17=a x = b多项式拟合原理:MATLAB通过给定的离散点,找一 个n次多项式,使所有离散点到多项式 曲线的距离的平方和最小。

5、准则:最小二乘法 拟合函数: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.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,

6、xi); %将xi的每一个元素作为横坐标带入 a1x+a2的表达式中,得出xi对应的纵坐 标并赋给yi plot(x,y, o,xi,yi,b); 注意:当拟合次数过高时,会造成曲线的振荡拟合的次数不允许超过点数,即此例中n=5插值拟合(1)插值的定义是在给定的原始数据点之间用某些 特定的数学算法插入一些数据点,当原始数据点和插入数 据点连线后得到穿过原始数据点的光滑曲线。 (2)当不能很快地求出所需中间点的函数时,插值是一 个非常有价值的工具。 (3)Matlab提供了线性插值、三次插值和三次样条插值3 种选择。直线插值:在原始数据点之间用直线拟合三次插值及三次样条插值:在原始数据点之间用三

7、 次多项式曲线分段连接三次插值和三次样条插值的区别样条插值得到的曲线一阶、二阶导数连 续,而一般的三次插值可能会有一阶和 二阶导数的间断,在有些问题如高速飞 机的机翼外形、内燃机进排气门的凸轮 曲线上不允许出现这样的情况,必须用 样条插值。插值函数:interp1 调用格式:interp1(x,y,xi,method) 其中: (1)x、y为离散数据的坐标向量,要求长 度必须相同 (2)xi为插入点的数据向量 (3)Method为插值方法,为字符串变量 有三种方法供选择: linear、cubic、spline分别表示线性插值、三次插值和三次样条插值曲线拟合例题2:将下列离散点用三次样条插值拟

8、合,并绘制: (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);MATLAB在积分求导运算中的应用(1)求单重积分 调用格式:q1=quad(被积函

9、数表达式,积分下限,积分上限)注意:函数表达式中运算符前面加“.”例:求积分q1=quad(4*cos(2*t).2+sin(t).2,0,3*pi);(2)双重积分 调用格式: q2=dblquad(被积函数表达式,xmin,xmax,ymin,ymax);注意:函数表达式中运算符前面加“.”例:求q2=dblquad(y.*sin(x)+x.*cos(y),3*pi,4*pi,pi,2*pi)用符号变量运算求积分(1)用符号变量求不定积分 调用格式:int(被积函数表达式,被积变量) 例: syms x y z; %表示声明3个符号变量x、y、z%注意:变量用空格隔开 int(sin(x*

10、y+z),x) 因为是符号变量运算,所以运算符前不用加 “.”(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)例:求函数

11、f(x)=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(a) 结果:ans = 2 2

12、 %代表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)

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

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

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