1、 1. 以下两种说法对吗? (1) MATLAB进行数值的表达精度与其指令窗中的数据显示精度相同。 (2) MATLAB指令窗中显示的数据有效位数不超过七位。 2. 历史指令窗所记录的内容与diary指令所产生的“日志”内容有什么不同? DIARY filename causes a copy of all subsequent command window input and most of the resulting command window output to be appended to the named file. If no file is
2、 specified, the file 'diary' is used. DIARY OFF suspends it. DIARY ON turns it back on. DIARY, by itself, toggles the diary state. Use the functional form of DIARY, such as DIARY('file'), when the file name is stored in a string. 3. 如何把用户自己的“工作目录”永久地设置在MATLAB的搜索路径上?“位于
3、搜索路径上的目录”与“当前目录”在MATLAB中的功用相同吗? 4. 如何向MATLAB工作空间输入一个含有100个左右元素的一维或二维数值数组?用直接键入法?用数组编辑器?用M文件编辑器? 5. 运用数组算术运算符去掉下面程序里的for/end循环: x=11:15 for k=1:length(x) z(k)=x(k)^2+2.3*x(k)^0.5; end x=11:15 z1=x.^2+2.3*x.^0.5 6.不使用数组算术运算符,重写下面的程序代码: x=[2 1 4]
4、 z=1./(1+x.^2) x=2;k=1; while i<=4, z2(k)=1/(1+i^2); i=i+1;x=x+1; end 7.某公司销售电脑打印机的价格方案如下: ()如果顾客只买一台打印机,则一台的基本价格为$150。 ()如果顾客购买两台以上打印机,则第二台价格为$120。 ()第三台以后,每台$110。 写一段程序分别计算出购买1--10台打印机所需的钱数。打印机台数可以在程序开始处指定,或通过input命令读入。运行程序,计算出购买10台打印机的总价格。 写出程序,生成分别购买1--10台打印机所需价格的图表(使用fp
5、rintf命令输出图表,不允许手算)。 x=1:10; if x<=1 y(x)=150*x; elseif x<=2 y(x)=150+120*(x-1); else y(x)=150+120+110*(x-2); end y(10) plot(x,y(x),’r*--‘) 8. 编写一个函数M文件fun_es(x),计算如下函数 function y=es(x) y=0.5*exp(x/3)-x.^2.*sin(x) 其中参数可以为标量,也可以为向量。在MATLAB里键入如下命令检验此函数: fun_es(3) fun_es([1
6、 2 3]) 9.定义一个矩阵 m=[1 2 5;3 1 2;4 1 3]; 如何用语句input将m读入MATLAB?在MATLAB上验证此过程是否正确。 在MATLAB上sum(m),max(m)和min(m)的结果分别是什么? 10. 写一段程序计算 (a) 使用一个for/end循环,但不能使用数组运算符和sum。 (b) 使用数组运算符和sum ,但不能使用任何 for/end循环, S的值是多少? % 第10题a S=0; for n=1:10 S=S+n/(n+1); end % 第10题b n=1:10; a=n./(n+1);
7、 sum (a) 11. (a)写一个函数M文件以计算方程 的解。规定此函数形式为 quad_rt(a,b,c),其中a,b和c可以为向量。 quad_rt(a,b,c) x1=(-b+sqrt(b.^2-4*a.*c)./(2*a), x2=(-b-sqrt(b.^2-4*a.*c)./(2*a), (b)用a=3,b=1,c=1检验此函数。 (c)用 a=[3 1 2],b=[1 –4 9],c=[1 3 –5] 检验此函数。 12.编写一个名为fun_xb的M文件以计算下面级数的和: x和n的值由input给出。与手算的x=1,n=4时的结果相
8、比,检验此函数。上述级数是log(1+x)的截断麦克劳林展开,当-1 9、
y ( i ) = A ( i , j )x ( j ) + y( i ) end
end
end
14.写出下面MATLAB程序所描述的数学表达式。
(1)for i = 1 : m (2)
for j = 1 : n for j = 1 : m
A(i,j) =A(i,j)+ x(i )* y(j) A(:,j)=A(:,j)+y(
end 10、 end
end
15. 用一条plot命令,在同一幅图中绘制下面两个函数的图形:
使用两次plot命令和hold on重复上述任务。
x=0:0.1:6;
y1=(x-1).*(x-2).*(x-4).*(x-5)/((3-1)*(3-2)*(3-4)*(3-5));
y2=(x-2).*(x-3).*(x-4).*(x-5)/((1-2)*(1-3)*(1-4)*(1-5));
plot (x,y1,'r-',x,y2,'g--')
plot (x,y1,'r-'),
hold on
plot (x,y2,'g--') 11、
hold off
16. 绘制如下方程给出的椭圆:,把y看做x的函数解方程。这样做将得到两个方程,一个是椭圆的上半部分,另一个是椭圆的下半部分。绘制这两个关于x的方程,得到椭圆。
x=-4:0.01:4;
y1=-sqrt((3-(x-2).^2)/2)+x+1;
y2= sqrt((3-(x-2).^2)/2)+x+1;
plot(x,y1,’g-‘,x,y2,’r-‘)
17. 将两个设计参数x和y定为0 12、0:0.01:5);
f=x.^2-8*x+y.^2-6*y-0.1*x.*y+50;
mesh (f),
[m,n]=find(f==min (min (f)));
x(m,n),y(m,n)
18. 用contour命令重做上题。
P98-1
编写程序Gauss-Siedel程序
function y=gs(A,b,x0)
D=diag(diag(A));
U=-triu(A,1);
L=-tril(A,1);
G=(D-L)\U;
f=(D-L)\b;
y=G*x0+f;
n=1;
while norm(y-x0)>=10e-6
x0=y;
y= G*x0+f;
n=n+1;
end
y
n
A=[10,-1,0;-1,10,-2;0,-2,10];
b=[9;7;6];
gs(A,b,[0;0;0])
P98-2
设流入节点流量为正,流出节点流量为负,每个节点流入流出流量之和为0,建立一个9×10的增广阵,
$$Ax+b=0$$
$$x=A\backslash-b$$
解得x=\\
P107
solve(‘(x-2)^2+(y-3+2*x)^2-5’,’2*(x-3)^2+(y/3)^2-4’,’x’,’y’)






