资源描述:
《matlab实验五多项式和符号运算》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验五:Matlab多项式和符号运算一、实验目的1.掌握Matlab多项式的运算。2.了解符号运算。二、实验内容1.将多项式化为x的降幂排列。symsx;y=(x-2)*(x+3)*(x-7)*(x+1);expand(y)ans=x^4-5*x^3-19*x^2+29*x+422.求一元高次方程的根。symsxy;y=x^9-5*x^8-30*x^7+150*x^6-1365*x^4-820*x^3+4100*x^2+576*x-2880;solve(y,x)ans=6.81947687941358392940041244319461.13657797
2、64942761488953013276419+.15748095564819249061612981291831*i2.8654872113200760683901828473839+2.4926334821808807616844446271927*i-1.8876051302159888775697938373354+1.0110818640881167605567812452594*i-.95151427733108350913000920547633-5.0968827172792270997017839130991-1.88760513021
3、59888775697938373354-1.0110818640881167605567812452594*i2.8654872113200760683901828473839-2.4926334821808807616844446271927*i1.1365779764942761488953013276419-.15748095564819249061612981291831*i3.求一元高次方程的根,并画出左边多项式函数在区间内的曲线。a=[10-201];r=roots(a)symsx;x=-2:2;y=[10-201];plot(x,y)r=
4、1.0000+0.0000i1.0000-0.0000i-1.0000-1.00004.对比用多项式函数的polyder函数及符号函数中的diff函数,求导x2+2x+3。>>y=[123];polyder(y)ans=225.求多项式在点2、4、5的值>>a=[13-21];polyval(a,[2,4,5])ans=171051916.计算a(x)=2x3+4x2+6x+8,b(x)=3x2+6x+9的多项式相加(试着编写一个polyadd的函数,实现多项式相加的功能)function[poly]=polyadd(poly1,poly2)ifleng
5、th(poly1)0poly=[zeros(1,mz),short]+long;elsepoly=long+short;endpoly1=[2357];poly2=[8-64-2];[poly]=polyadd(poly1,poly2)poly=10-3957.求多项式和的乘积;并求的商和余式。(conv()deconv())f1=[1357];f2=[
6、8-64-2];f=conv(f1,f2)f=8182636-2818-14>>fll=[zeros(1,length(f)-length(f1)),f1]fll=0001357>>>>[q,r]=deconv(f-fll,f2)q=1.00003.00005.00006.8750r=0000-3.7500-4.5000-7.25008.求的符号导数。y='x^5+tan(4*x^2)+3';>>diff(y)ans=-26-41-1073-1913-7012-1078-26-44-9289.用符号运算求实验内容6中的的表达式。观察在不使用collect
7、(f)函数以及使用后的结果。三、设计提示1.关于多项式运算的函数有poly、roots、diff、conv/deconv等。2.多项式做加减运算时要注意等长度。3.符号表达式的输入可以用字符串方式,也可以用sym函数,syms函数。4.了解以下符号多项式函数1.collect(f):函数用途是合并多项式中相同的项,symsxtf=(1+x)*t+x*t;collect(f)2.expand(f):展开多项式,symsxf=x*(x*(x-1)+3)+2;expand(f);3.horner(f)对转换多项式为Horner形式,这种形式的特点是乘法嵌套,其
8、有着不错的数值计算性质.symsx;f=x^3+2*x^2+5*x-2horne