《Matlab及应用》上机实践报告.doc
Matlab及应用上机实践报告系 别: 专业班级:学 号: 姓 名:一、简易计算题:(第1-4小题每小题5分,第5小题10分,共30分)1、计算,当和时的值。方法一:编写一个函数文件humps.m,即:function y=humps(x)y=x.3+(x-0.98).2/(x+1.35).3-5*(x+1./x);然后调用,在命令窗口中输入:>> y1=humps(2)y1 = -4.4723>> y2=humps(4)y2 = 42.8096(或者把y1和y2放在一起,通过下列方式求解)>> y=feval('humps',2,4)y = -4.4423 42.8077方法二:>> f=inline(' y=x.3+(x-0.98).2/(x+1.35).3-5*(x+1./x)');>> f(2)ans = -4.4723>> f(4)ans = 42.8096(或者把y1和y2放在一起,通过下列方式求解)>> y=feval(f,2,4)y = -4.4423 42.80772、计算。>> cos(60*pi/180)-(9-sqrt(2)(1/3)ans = -1.46493、设,求,。>> A=1 4 8;-3 6 -5;2 -7 -12;>> B=5 4 -2;6 -2 -8;-1 -9 7;>> C=A*BC = 21 -76 22 26 21 -77 -20 130 -32>> D=A.*BD = 5 16 -16 -18 -12 40-2 63 -84所以,。4、设对称实矩阵,求其特征根。>> a=2 4 9;4 2 4;9 4 18;>> p1=poly(a) %求特征多项式的系数p1 = 1.0000 -22.0000 -37.0000 122.0000>> roots(p1) %求特征根ans = 23.3603 -3.06451.7042所以,原对称实矩阵的特征根为5、设为符号变量,试进行如下运算(1);(2);(3);(4);(5)对进行因式分解>> syms x fx gx>> fx=x4+x2+1;>> gx=x3+4*x2+5*x+8;>> fx+gx ans = x4+5*x2+9+x3+5*x %(1)的结果>> fx-gx ans = x4-3*x2-7-x3-5*x %(2)的结果>> expand(fx*gx) ans = x7+4*x6+6*x5+12*x4+6*x3+12*x2+5*x+8 %(3)的结果>> expand(fx/gx)ans =1/(x3+4*x2+5*x+8)*x4+1/(x3+4*x2+5*x+8)*x2+1/(x3+4*x2+5*x+8) %(4)的结果>> factor(fx) ans =(x2+x+1)*(x2-x+1) %(5)的结果二、数据拟合与插值:(每小题6分,共12分)1、用三阶公式计算在和处的导数值,的值由下表给出:1.01.11.21.31.40.250.22680.20660.18900.1736>> x=1.0,1.1,1.2,1.3,1.4;>> y=0.25,0.2268,0.2066,0.1890,0.1736;>> p1=polyfit(x,y,3) %3阶公式拟合后的多项式系数p1 = -0.0667 0.3700 -0.7883 0.7350>> x1=linspace(0.8,1.6,100); %在0.8,1.6区间取100个点>> y1=polyval(p1,x1); %计算拟合多项式的值>> plot(x,y,'*b',x1,y1,'r'); %绘制原始数据和拟合曲线>> legend('原始数据','3阶多项式');>> k=polyder(p1) %对拟合后的3阶多项式进行求导k = -0.2000 0.7400 -0.7883>> s1=polyval(k,1.0) %对求导后的多项式计算在的值s1 = -0.2483>> s2=polyval(k,1.2) %对求导后的多项式计算在的值s2 = -0.18832、在某处测得海洋不同深处的水温如下:深度(m)44671495014221634水温7.044.283.402.542.13利用分段线性插值函数,求在深度为500m、1000m、1500m处的水温。>> x=446,714,950,1422,1634;>> y=7.04,4.28,3.40,2.54,2.13;>> y1=interp1(x,y,500,'linear') %计算在500处的插值结果y1 = 6.4839>> y2=interp1(x,y,1000,'linear') %计算在1000处的插值结果y2 = 3.3089>> y3=interp1(x,y,1500,'linear') %计算在1500处的插值结果y3 =2.3892三、解方程与微积分:(每小题4分,共28分)1、求下面线性方程组的解。方法一:>> A=1 1 1 -1;2 1 -3 -14;-3 2 1 -5;7 -4 -3 2;>> B=5;-1;3;-2;>> X=ABX = 1.0000 -2.0000 5.0000 -1.0000所以,原方程组的解为方法二:>> A=1 1 1 -1;2 1 -3 -14;-3 2 1 -5;7 -4 -3 2;>> B=5;-1;3;-2;>> inv(A)ans = 0.3333 0.0505 -0.2121 -0.0101 0.3333 0.4444 -1.6667 -0.8889 0.3333 -0.4343 1.4242 0.6869 0.0000 0.0606 -0.4545 -0.2121>> X=inv(A)*BX = 1.0000 -2.0000 5.0000 -1.0000所以,原方程组的解为2、 求代数方程的根。>> y=3 4 7 2 9 12;>> roots(y)ans = -0.8612 + 1.4377i -0.8612 - 1.4377i 0.6737 + 1.0159i 0.6737 - 1.0159i -0.9583 所以,原代数方程的5个根分别为: 3、 设方程的根为,求它们对应的关于的线性代数方程。>> r=-3 -5 -8 -9;>> y=poly(r)y = 1 25 223 831 108所以它们对应的关于的线性代数方程为:。4、已知,求。方法一:>> syms x y>> y=sin(2*x)*log(x)y = sin(2*x)*log(x)>> diff(y)ans = 2*cos(2*x)*log(x)+sin(2*x)/x方法二:>> y=sym('sin(2*x)*log(x)');>> diff(y)ans = 2*cos(2*x)*log(x)+sin(2*x)/x所以5、求>> syms x fx>> fx=(tan(x)-sin(x)/(1-cos(2*x)fx = (tan(x)-sin(x)/(1-cos(2*x)>> f=limit(fx)f = 06、计算一重积分方法一:>> y=quad('x./(x.4+4)',1,10)y =0.2718方法二:首先建立函数文件myfun.m,即function y=myfun(x)y=x./(x.4+4);然后调用,在命令窗口中输入:>> y=quad('myfun',1,10)y =0.2718方法三:>> f=inline('x./(x.4+4)');>> y=quad(f,1,10)y = 0.2718方法四:>> f=(x)x./(x.4+4);>> y=quad(f,1,10)y = 0.27187、计算二重积分。方法一:>> S=dblquad('(x-y).2+(sin(x+y).2',pi,2*pi,0,pi)S = 118.5787方法二:>> S=dblquad(inline('(x-y).2+(sin(x+y).2'),pi,2*pi,0,pi)S = 118.5787方法三:首先建立函数文件jifen2.m,即function z=jifen2(x,y)z=(x-y).2+(sin(x+y).2;然后调用,在命令窗口中输入:>> S=dblquad('jifen2',pi,2*pi,0,pi)S = 118.5787四、编程画图题:(每小题6分,共12分)1、设,把区间分为125点,画出以为横坐标,为纵坐标的曲线。>> x=linspace(0,2*pi,125);>> y=cos(x).*(0.5+3*sin(x)./(1+x.2);>> plot(y);>> title('my first plot');>> xlabel('x');>> ylabel('y');>> grid on;2、绘制函数在,上的曲面图。>> syms x y>> z=1/(2*pi)*exp(-(x2+y2)+2);>> ezsurf(x,y,z,-3,3,-3,3);五、综合编程题:(每小题9分,共18分)1、编写一个主程序文件,文件名称为sum,求的值。建立主程序文件sum.m,即clcclears=0;sign=-1;for i=1:100 sign=-sign; term=sign./i; s=s+term;endout=s;运行以后,输出结果如下:>> outout = 0.68822、编写一个函数文件,实现求解,要求函数名为fac,并在命令窗口中对该函数进行调用,求的值。编写一个函数文件fac.m,即:function y=fac(n)s=1;for i=1:n s=s*i;endy=s;运行以后,输出结果如下:>> y=fac(10)y = 4、 rossler模型是(1) 取a=0.32,b=3,c=6,画出三维图形及其在三个平面上的投影。(2) 取b=2,c=4改变a将得到如下图形:a=0.3(极限环);a=0.35(周期2);a=0.375(周期4);a=0.386(四带混沌吸引子);a=0.3909(周期6);a=0.398(.);t,y=ode45('rossler',0, 500,12,2,9);subplot(2,2,1)plot(y(:,1),y(:,2)xlabel('independent Variable x')ylabel('dependent Variable y')subplot(2,2,2)plot(y(: ,1),y(:,3)xlabel('independent Variable x')ylabel('dependent Variable z')subplot(2,2,3)plot(y(: ,2),y(:,3)xlabel('independent Variable y')ylabel('dependent Variable z')subplot(2,2,4)plot3(y(:,1),y(:,2),y(:,3)xlabel('Variable x')ylabel('Variable y')zlabel('Variable z')function dy=rossler(t,y);a=0.32;b=3;c=6;dy=zeros(3,1);dy(1)=-y(2)-y(3);dy(2)=y(1)+a*y(2);dy(3)=b-c*y(3)+y(1)*y(3);(2)a=0.3