6
?6x1?9x2?14x3?11x4?5x5?68?x?14x?7x?15x?6x?294?12345???2x1?x2?7x3?12x4?x5??441??6x1?11x2?11x3?9x4?13x5?103
如果系数矩阵A的行数m等于列数n,且A为非奇异阵(即A的行列式:det(A)≠0),
称方程为恰定方程;
如果m>n,称方程为超定方程; 如果m A=[6,9,14,-11,5;1,14,-7,-15,-6;-2,1,-7,12,-1;6,11,11,-9,-13]; b=[68,294,-441,103]’; x=A\\b 3.用网孔电流法求如下电路的各支路电流。 A=[4,-1,0;-2,6,-4;0,-1,2]; b=[2,1,1]'; x=inv(A)*b; Ia=x(1,1) Ib=x(2,1)-x(1,1) Ic=x(3,1)-x(2,1) Id=x(3,1) 4.用结点电压法求如下电路的结点电压un1、un2。 《Matlab语言及其在电子信息科学中的应用》实验指导书 7 三、设计提示 1.在计算程序的执行时间之前,应注意用clear命令将内存变量清空。 2.求得线性方程组的解之后,代入原方程验证是否正确。 四、实验报告要求 1.编写实现第二节实验内容中所使用的函数命令,并记录相应的生成结果。 2.对于电路的求解,应列出相应的网孔方程和结点方程,并注意方向。 3.书写实验报告时要结构合理,层次分明,在分析描述的时候,需要注意语言的流畅。 实验五:函数编写与程序设计 一、实验目的 1.掌握函数的编写规则。 2.掌握函数的调用。 3.会用Matlab程序设计实现一些工程算法问题。 二、实验内容 1.编写一个[y,y1,y2]=mwave(f1,m1,f2,m2)函数,实现以下功能,并绘出y1、y2、y在t∈[0,2π]区间500个样点的图形。(其中调用参数2 ≤ f1、f2 ≤ 20 HZ;0.5 ≤ m1、m2 ≤ 2) y1?m1sin(2?f1t);y2?m2sin(2?f2t); y?y1?y2《Matlab语言及其在电子信息科学中的应用》实验指导书 8 2.程序设计:相传古代印度国王要褒奖他的聪明能干的宰相达依尔(国际象棋发明者),问他要什么?达依尔回答:“陛下只要在国际象棋棋盘的第一个格子上放一粒麦子,第二个格子上放二粒麦子,以后每个格子的麦子数都按前一格的两倍计算。如果陛下按此法给我64格的麦子,就感激不尽,其他什么也不要了。”国王想:“这还不容易!”让人扛了一袋麦子,但很快用光了,再扛出一袋还不够,请你为国王算一下共要给达依尔多少小麦?(1袋小麦约1.4×108粒)。 3.程序设计:公元前五世纪我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、母、雏各几何? 三、设计提示 1.函数名和函数文件名应相同;对调用参数的取值范围要检验是否符合要求,如不符合要求,应给出出错信息(用if和error函数实现)。 2.程序设计——“百鸡问题”答案不唯一。提示:设x:鸡翁数,则x的范围:0~19;y:鸡母数,则y的范围:0~33;z:鸡雏数,则z的范围:0~100。 四、实验报告要求 1.编写实现第二节实验内容(1)所使用的函数文件。 2.程序设计用M文件编写,并记录执行结果。“百鸡问题”答案不唯一,要给出所有答案。 3.书写实验报告时要结构合理,层次分明,在分析描述的时候,需要注意语言的流畅。 五、参考答案 第1题: function [y,y1,y2]=mwave(f1,m1,f2,m2) % 根据给定的频率和幅值计算标准正弦函数y1、y2及其叠加y的波形。 if (f1<2)|(f1>20) error('f1超出范围!'), return, end if (f2<2)|(f2>20) error('f2超出范围!'), return, end if (m1<0.5)|(m1>2) error('m1超出范围!'), return, end if (m2<0.5)|(m2>2) error('m2超出范围!'), return, end % --------------------------------------------------- t=0:2*pi/(500-1):2*pi; y1=m1*sin(2*pi*f1*t); y2=m2*sin(2*pi*f2*t); y=y1+y2; figure subplot(311); plot(t,y1); title('y1波形'); subplot(312); plot(t,y2); title('y2波形'); subplot(313); plot(t,y); title('y=y1+y2波形'); % =================================================== 保存为mwave.m 调用函数>>mwave(3,1,10,1) 《Matlab语言及其在电子信息科学中的应用》实验指导书 9 第2题: a=1; s=0; for i=1:64 s=s+a; a=2*a; end n=s/1.4/10^8 运行后得:n=1.3176e+011 第3题: 解 设 x:鸡翁数,则x的范围:0~19 y:鸡母数,则y的范围:0~33 z:鸡雏数,则z的范围:0~100 则: x+y+z=100 5x+3y+z/3=100 这是一个欠定方程。 for x=0:19 for y=0:33 for z=0:100 if (x+y+z==100)&(5*x+3*y+z/3==100) d=[x,y,z] end end end end 运行后得结果: d = 0 25 75 d = 4 18 78 d = 8 11 81 d = 12 4 84 实验六:二维图形和三维图形的创建 一、实验目的 1.掌握二维图形的绘制。 2.掌握图形的标注 3.了解三维曲线和曲面图形的绘制。 二、实验内容 1.生成1×10维的随机数向量a,分别用红、黄、蓝、绿色绘出其连线图、脉冲图、阶梯图和条形图,并分别标出标题“连线图”、“脉冲图”、“阶梯图”、“条形图”。 a=rand(1,10); 《Matlab语言及其在电子信息科学中的应用》实验指导书 10 subplot(141);plot(a,'r');title('连线图') subplot(142);stem(a,'y');title('脉冲图') subplot(143);stairs(a,'b');title('阶梯图') subplot(144);bar(a,'g');title('条形图') x2.在同一个图形窗口中,绘制两条曲线y1?2x、y2??1/2?;并分别在靠近相应的曲线处标注其函数表达式。 x=-5:0.5:5; y1=2.^x; y2=(1/2).^x; plot(x,y1,'r',x,y2,'b'); xlabel('x'),ylabel('y') text(-3.5, 15, '\\leftarrowy2=(1/2)^x')%或者text(-3.5, 15, 'y2=(1/2).^x') text(2, 15, 'y1=2^x\\rightarrow')%或者text(2, 15, 'y1=2^x') 3.编写一个mcircle(r)函数,调用该函数时,根据给定的半径r,以原点为圆心画一个如图所示的红色空心圆。(图例半径r=5) 4.(1)绘一个圆柱螺旋线(形似弹簧)图。圆柱截面直径为10,高度为5,每圈上升高度为1。如左图所示。 (2)利用(1)的结果,对程序做少许修改,得到如右图所示图形。 《Matlab语言及其在电子信息科学中的应用》实验指导书