1、MATLAB 作业 1 参考答案1、编写一个矩阵相加函数mat_add(),使其具体的调用格式为A=mat_add(A1,A2,A3,),要求该函数能接受任意多个矩阵进行加法运算。(注:varargin 变量的应用)【求解】可以编写下面的函数,用varargin 变量来表示可变输入变量function A=mat_add(varargin)A=0;for i=1:length(varargin),A=A+varargini;end如果想得到合适的错误显示,则可以试用try,catch 结构。function A=mat_add(varargin)tryA=0;for i=1:length(va
2、rargin),A=A+varargini;endcatch,error(lasterr);end2、请绘制出 的三维图和等高线。sin()xy 【求解】给出下面命令即可得出的图形。x,y=meshgrid(-pi:.1:pi);surf(x,y,sin(x.*y),figure;contour(x,y,sin(x.*y),30)3、试求出如下极限。222222001 cos()lim()xyxyxyxye【求解】极限问题可以由下面语句直接求解。fc=(1-cos(x2+y2)*exp(x2+y2)/(x2+y2);limit(limit(fc,x,0),y,0)ans=04、试求出下面函数的
3、导数。22atanln()yxyx【求解】为隐函数,故需要用隐函数求导公式得出导数。syms x,y;f=atan(y/x)-log(x2+y2);f1=simple(-diff(f,x)/diff(f,y)f1=(y+2*x)/(x-2*y)5、假设,试求。20(,)xytf x yedt222222xfffyxx yy 【求解】由下面的命令可以得出所需结果。syms x y tf=int(exp(-t2),t,0,x*y);x/y*diff(f,x,2)-2*diff(diff(f,x),y)+diff(f,y,2)simple(ans)ans=-2*exp(-x2*y2)*(-x2*y2
4、+1+x3*y)6、假设,试求出积分函数。5()sin(3/3)xf xex0()()()tR tf x f tx dx 【求解】定义了x 的函数,则可以由subs()函数定义出t+x 的函数,这样由下面的语句可以直接得出R 函数。syms x t;f=exp(-5*x)*sin(3*x+sym(pi)/3);R=int(f*subs(f,x,t+x),x,0,t);simple(R)ans=1/1360*(15*exp(t)10*3(1/2)*cos(3*t)-25*cos(9*t)+25*exp(t)10*3(1/2)*sin(3*t)-68*cos(3*t)-15*3(1/2)*cos(
5、9*t)-25*3(1/2)*sin(9*t)-15*exp(t)10*sin(3*t)+15*sin(9*t)+93*exp(t)10*cos(3*t)/exp(t)157、试求出下面函数的 Taylor 幂级数展开。分别关于、的幂级数展开。5sin(3/3)xex0 x xa【求解】该函数的前4 项展开 syms x a;f=exp(-5*x)*sin(3*x+sym(pi)/3);taylor(f,x,4,a)8、试求出下面的极限。22221111lim()23nnnnnnn 【求解】可以由下面的语句直接求解。syms k nlimit(n*symsum(1/(n2+k*pi),k,1,
6、n),n,inf)9、试对下面数值描述的函数求取各阶(x=0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1,1.1,1.2;y=0,2.208,3.206,3.444,3.241,2.816,2.311,1.81,1.36,0.982,0.679,0.447,0.277;dy1,dx1=diff_ctr(y,x(2)-x(1),1);dy2,dx2=diff_ctr(y,x(2)-x(1),2);dy3,dx3=diff_ctr(y,x(2)-x(1),3);dy4,dx4=diff_ctr(y,x(2)-x(1),4);plot(dx1+x(1),dy1,-,d
7、x2+x(1),dy2,-,dx3+x(1),dy3,:,dx4+x(1),dy4,-.)trapz(x,y)ans=2.264310.计算被积函数在0,1)区间上的积分。ln()xyex解:编写一个用于计算被积函数的函数 myfun:function y=myfun(x)y=exp(x).*log(x);然后将 myfun 的函数句柄 myfun 以及 0 至 1 的积分范围一起传递到 quadgk。q=quadgk(myfun,0,1)q=-1.3179另外,您也可以将被积函数作为匿名函数句柄 F 传递到 quadgk:f=(x)exp(x).*log(x);q=quadgk(f,0,1)q=-1.317911、.求函数在区域 0 x、0y1 和-1z1 的积分。(,)sincosf x y zyxzx解:fun=(x,y,z)y.*sin(x)+z.*cos(x);q=integral3(fun,0,pi,0,1,-1,1)q=2.0000