第二章 matlab语言程序设计基础
一、实验内容:
题目1.启动matlab环境,并给出语句tic,a=rand(500);b=inv(a);norm(a*b-eye(500)),toc,试运行该语句,观察得出的结果,并利用help 命令对你不熟悉的语句进行帮助信息查询,逐条给出上述程序段与结果的解释。
分析】:在matlab上输入题目的语句运行即可得到结果。对信息查询可以利用help来完成。例如可以输入help inv,matlab会自动输出相关信息。
解答】:输入如下语句:>>tic,a=rand(500计算开始计时,生成500*500的(0,1)之间的随机分布矩阵a
b=inv(a求a的逆阵。
norm(a*b-eye(500)),toc %求a*b减去500*500单位阵的结果的范数。
运行该程序,显示如下:
ans =1.6200e-011
elapsed time is 0.522389 seconds.
信息查询:(1)tic 是一个秒表计时器,用于计算一个命令所需的时间,结尾处的toc 用于输出所计算的时间。
2)a=rand(n)--由随机项组成的n行n矩阵,选择时间间隔在(0.0,1.0)的均匀分布。
3)norm 用于求解最大的奇异值。
对结果的解释:该程序求解随机矩阵的逆,并求出得出的逆矩阵与原矩阵的乘积,得出和单位矩阵的差,得出范数。
题目2. 试用符号元素工具箱支持的方式表达多项式,并令,将f(x) 替换成s 的函数。
分析】:首先可以定义出f 函数,然后再用subs() 函数将x 替换s 的函数。
解答】:编写表达式语句:>>syms s x
f=x^5+3*x^4+4*x^3+2*x^2+3*x+6;
f=subs(f,x,(s-1)/(s+1))
运行语句,显示如下:
f =s-1)^5/(s+1)^5+3*(s-1)^4/(s+1)^4+4*(s-1)^3/(s+1)^3+2*(s-1)^2/(s+1)^2+3*(s-1)/(s+1)+6
题目3.用matlab 语句输入矩阵a 和b
前面给出的是4 ×4 矩阵,如果给出a(5,6) =5 命令,矩阵a将得出什么结果?
分析】: 矩阵a和b可以直接用书上教的方法直接输出。执行a(5,6)=5 命令,虽然行和列数均大于a 矩阵的维数,但只要在其他位置上添加0即可。
解答】:1)将矩阵a直接输入:>>a=[1 2 3 4; 4 3 2 1; 2 3 4 1; 3 2 4 1]
语句运行后,显示如下:a =
2)输入a(5,6) =5 命令:>>a(5,6)=5
语句运行后,显示如下:a =
3)将复数矩阵b直接输入:>>b=[1+4i 2+3i 3+2i 4+1i; 4+1i 3+2i 2+3i 1+4i;2+3i 3+2i 4+1i 1+4i;
3+2i 2+3i 4+1i 1+4i]
语句运行后,显示如下:
b =1.0000 + 4.0000i 2.0000 + 3.0000i 3.0000 + 2.0000i 4.0000 + 1.0000i
4.0000 + 1.0000i 3.0000 + 2.0000i 2.0000 + 3.0000i 1.0000 + 4.0000i
2.0000 + 3.0000i 3.0000 + 2.0000i 4.0000 + 1.0000i 1.0000 + 4.0000i
3.0000 + 2.0000i 2.0000 + 3.0000i 4.0000 + 1.0000i 1.0000 + 4.0000i
题目4:假设已知矩阵a ,试给出相应的matlab 命令,将其全部偶数行提取出来,赋给b 矩阵,用a =magic(8) 命令生成a 矩阵,用上述的命令检验一下结果是不是正确。
分析】:首先可以利用magic() 生成a矩阵,再利用语句提取a矩阵的偶数行。
解答】:编写如下语句:>>a=magic(8), b=a(2:2:end,:)提取偶数行。
语句运行后,显示如下:a =
b =题目6:用数值方法可以求出,试不采用循环的形式求出和式的数值解。由于数值方法采用double 形式进行计算的,难以保证有效位数字,所以结果不一定精确。
试采用符号运算的方法求该和式的精确值。
分析】:可以利用数值的方法进行运算。利用sum()函数,只要把对应的i改为[1:63]即可。(编写时还应主要“点”运算问题)
解答】:1) 用符号运算的方法编写语句:
> sum(sym(2).^1:63])
语句运行后,显示如下:ans =
(2)由于结果有19 位数值,所以用double 型不能精确表示结果所以可以1000 项的和来增加精确度。语句编写如下:
> sum(sym(2).^1:1000])
语句运行后,显示如下;
ans =
题目7: 编写一个矩阵相加函数mat_add() 使其具体的调用格式为a=mat_add(a1 ,a2 ,a3 ,…要求该函数能接受任意多个矩阵进行加法运算。(注:
varargin 变量的应用)
分析】:可以利用varargin 变量来表示可变输入变量,然后再利用mat_add()进行矩阵相加。
解答】:输入如下语句:
>function a=mat_add(varargin)
a=0;for i=1:length(varargin), a=a+varargin; end
题目11:下面给出了一个迭代模型。
写出求解该模型的m-函数(m-脚本文件),如果取迭代初值为,那么请进行30000 次迭代求出一组x 和y 向量,然后在所有的和坐标处点亮一个点( 注意不要连线) ,最后绘制出所需的图形。(提示这样绘制出的图形又称为henon 引力线图,它将迭代出来的随机点吸引到一起,最后得出貌似连贯的引力线图。)
分析】:该题可以用循环形式来得出的henon 引力线图。首先应对自变量进行赋值,题目给出要做3000次迭代,所以x的范围应为1-3000。
因为用循环,所以i的范围应是1-2999。函数直接输出即可。图像的输出只需用plot()即可。
解答】:输入如下语句:>>x=0; y=0;
for i=1:29999
x(i+1)=1+y(i)-1.4*x(i)^2;
y(i+1)=0.3*x(i);
endplot(x,y,'.
运行语句后,显示**如下:
题目13:选择合适的步距绘制出下面的图形,其中。(注:合适的步距包括等距与不等距)
分析】:首先应对t进行定义,t开始于-1,终止于1。为精确画图,设置步长为0.
01。接着对函数进行输入,因为t是向量,所以要特别注意“点”的问题。最后用plot()函数来显示**。
解答】:输入如下语句:>>t=-1:0.01:1; y=sin(1./t); plot(t,y)
题目14:对合适的范围选取分别绘制出下列极坐标图形(注:要求把图形窗口分为4块,每块绘一个图),②
分析】:该图为极坐标的编写。首先应选取合适的范围,t应于0,终止于pi。
为精确画图,设置步长为0.01。因为是向量,所以对函数进行输入时要特别注意“点”的问题。
如sin()/在matlab上应写为sin(t)./t。而**的输出即可用polar()来表示。
第二章作业
1 试画出下列各孔 轴配合的公差带图,并计算它们的极限尺寸 尺寸公差 配合公差及极限间隙或极限过盈。1 孔mm,轴mm 孔 轴 最大间隙 最大过盈 过渡配合。配合公差 若问 某孔轴配合,最大间隙37微米,配合公差64微米,此配合为?配合?2 孔mm,轴mm 孔 轴 最大间隙 最小间隙 配合公差 若问...
第二章作业
1两台火力发电机组并列运行,额定容量均为100mw,耗量特性分别为 f1 1 0.2pg1 0.001pg12 t h f2 2 0.1pg2 0.002pg22 t h 当负荷为160mw时,试求 平均分配负荷时每小时耗煤多少吨?最优分配负荷时每小时耗煤多少吨?2某火电厂装设两套发电设备,其耗量特...
第二章作业
1 什么是 导线和扩径导线?采用扩径导线或 导线的主要目的是什么?2 架空输电线为什么要换位?何谓 完全换位 3 什么是电力线路的电晕?它与哪些因素有关?4 标么值定义是什么?有何特点?基准值的选取应注意什么?5 架空线路与电缆线各有什么特点?在电气参数上主要有哪些差别?适用于什么场合?6 计算线路...