资源描述:
《清华出版社-系统仿真导论-答案》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Chapter0习题MATLAB语言编程基础6/6Chapter0习题MATLAB语言编程基础目的:(1)熟悉MATLAB的使用。(2)掌握MATLAB的编程的基本循环、判断语句、画图语句等。(3)学会如何充分利用MATLAB的强大的帮助功能。(4)掌握MATLAB函数的编写和调用。1.用MATLAB语句输入矩阵和,前面给出的是的矩阵,如果给出的命令将得出什么结果?【解答】>>A=[1,2,3,4;4,3,2,1;2,3,4,1;3,2,4,1]A=1234432123413241>>A(5,6)=5A=123400432100234100324100000005>>B=[1+4j
2、,2+3j,3+2j,4+1j;4+1j,3+2j,2+3j,1+4j;2+3j,3+2j,4+1j,1+4j;3+2j,2+3j,4+1j,1+4j]B=1.0000+4.0000i2.0000+3.0000i3.0000+2.0000i4.0000+1.0000i4.0000+1.0000i3.0000+2.0000i2.0000+3.0000i1.0000+4.0000i2.0000+3.0000i3.0000+2.0000i4.0000+1.0000i1.0000+4.0000i3.0000+2.0000i2.0000+3.0000i4.0000+1.0000i1.0000
3、+4.0000i2.试用符号元素工具箱支持的方式表达多项式,并令,将替换成的函数,并写出最后的结果。(注:subs()函数可进行变量替换,用simple()函数进行结果化简)。6Chapter0习题MATLAB语言编程基础6/6【解答】>>symsx>>f=x^5+3*x^4+4*x^3+2*x^2+3*x+6f=x^5+3*x^4+4*x^3+2*x^2+3*x+6>>symss>>f=subs(f,x,(s-1)/(s+1))f=(3*(s-1))/(s+1)+(2*(s-1)^2)/(s+1)^2+(4*(s-1)^3)/(s+1)^3+(3*(s-1)^4)/(s+1)^4
4、+(s-1)^5/(s+1)^5+6>>simple(f)ans=19-(72*s^4+120*s^3+136*s^2+72*s+16)/(s+1)^51.采用循环的形式求出。【解答】循环形式:>>formatlong>>s=0;>>fori=0:63s=s+2^i;end>>ss=1.844674407370955e+019符号运算形式:>>symsk>>symsum(2^k,0,63)ans=184467440737095516152.用MATLAB语言实现下面的分段函数。【解答】MATLABM文件:getf.mfunctiony=getf(x)h=1;D=2;ifx>Dy=h
5、;6Chapter0习题MATLAB语言编程基础6/6elseifx<-Dy=-h;elsey=h./(D.*x);end测试getf.m的MATLAB命令及结果:>>getf(3)ans=1>>getf(1)ans=0.500000000000000>>getf(-1)ans=-0.500000000000000>>getf(-3)ans=-11.编写一个矩阵相加函数mat_add(),使得该函数能够接受任意多个矩阵,且其调用格式为。【解答】MATLABM文件:mat_add.mfunctionA=mat_add(varargin)A=0;fori=1:length(vararg
6、in)A=A+varargin{i};end;MATLAB测试命令及结果:>>a=[12;34];>>mat_add(a,a,a)ans=369122.下面给出了一个迭代模型,写出求解该模型的M-函数。如果迭代初值为。那么请进行30000次迭代求出一组和向量,然后在所有的和6Chapter0习题MATLAB语言编程基础6/6坐标处画一个点(注意不要连线),最后绘制出所需的图形。(注:这样绘制出的图形又称为Henon引力线图,它将迭代出来的随机点吸引到一起,最后得出貌似连贯的引力线图。)【解答】x=0;y=0;fori=1:30000x(i+1)=1+y(i)-1.4*x(i)^2;
7、y(i+1)=0.3*x(i);endplot(x,y,'.');1.选择合适的步长绘制出函数的图形,其中。【解答】选择普通绘图形式,等间距时,所得曲线在左右显得粗糙。>>t=-1:0.03:1;y=sin(1./t);plot(t,y);选择不等间距的方法时,所得曲线如下图所示。6Chapter0习题MATLAB语言编程基础6/6>>t=[-1:0.03:-0.25,-0.248:0.0009:0.248,0.25:0.03:1];y=sin(1./t);plot(