资源描述
一、填空题(本题满分30分,每空3分)
1.设有程序
A=[2,0,1,0;1,0,1,5;0, 6 ,2, 3];B=[1,2,-1;1,3,1];C=A(1:3,[1,2]);
D=size(C)- length(B(2,:));F= C.*B’
将下列命令的运行结果填在横线上0*、0
D = [0 -1] ; F= [2 0;2 0;0 6] .
2. A=[2,3,2,1;1,2,2,1; 1,2,3,-2];
A1=sum(A>A(2,1));A(2,:)=[],A2=A.^2-4
A1= ; A2= ;
3.P=[1,2,5,4;2,2,1,3];max(P,[ ],1)= [2 2 5 4] ;mean(P,2)= [3 2] .
5.
a=[ ];
for i=1:3;
for j=1:3;
a(i,j)=(i-j)*abs(i-j);
end
end
b=a(8)*a
运行结果
b= .
4.
x=0; n=1;
while n<6
x=n+x;
n=n+1;
end
x
运行结果
x= 15 . .
7.
function f=price(a)
switch fix(a/100);
case {0,1,2}
rate=0;
otherwise
rate=0.05
end
f=a*(1-rate)
运行结果
price (300)= 285 .
6.
x=5,y=-20;
if x<0
x=y-3
else y= y+10;
end
z=400*x-y
运行结果
z= 2010 .
二、(本题满分10分)试编写计算程序画出曲线与曲面图形
%1 %2
t=0:0.1: 2*pi; [x,y]=meshgrid(-2:0.1:2);
x= sin(t).^3; z=(x.^2+1).* exp(-x.^2- y.^2+)+x.^2.*y;
y= cos (t).^3; mesh(x,y,z)
plot(x,y)
三、(本题满分12分)编写程序解决下列问题:
(1)试产生100´4阶矩阵使其元素在0—100之间的随机整数,可将此矩阵理解为100名同学的四门课程(课程1, 课程2, 课程3, 课程4)的成绩.
(2)计算出每门课程和每位同学的平均成绩;
(3)统计出总的优秀人次(90分及以上为优秀);
(4)统计出四门课程成绩至少有两门课程不及格的人数.
解:(1) a=fix((100-0+1)*rand(100,4));
(2) mean(a) mean(a,2)
(3)sum(sum(a>=90,2)==4)
(4)sum(sum(a<60,2)>=2)
四、(本题满10分)
(1). function y=fun1(x,n) (2). x=0:0.1:2*pi;
y=0; y1= fun1 (x,20);
for k=1:n y2= fun1 (x,50);
y=y+ ((-1)^(k+1)*sin(k*x))/k; subplot(2,1,1),plot(x,y1)
end subplot(2,1,2),plot(x,y2)
y
五、(本题满分10分)
试利用微分方程的数值解法写出下列微分方程的求解步骤和MATLAB程序.
.(t的变化区间为[0,10]).
第一步:先将高阶微分方程转化为一阶微分方程组:
选择状态变量,则原方程化为
第二步:建立函数文件
function dxdt = fun2(t,x)
dxdt = [-3*t*x(1)+ x(2)+t; x(1)];
第三步:求解微分方程,命令如下:
[t,x]=ode45(@fun2,[0,10],[0;2])
六、参考程序:
1. solve('exp(x)=x^2+2')
2.syms x s
A=[x*sin(x),log(x);exp(-x),1/(s+x)]
diff(A)
int(A)
A*A
3.syms x
limit((cos(x)-cos(x)^(1/2))/x/(exp(sin(x))-1))
4.dsolve('D4x+x=2*exp(t)','x(0)=1','Dx(0)=1','D2x(0)=1','D3x(0)=1')
解一:function y=fc(x)
y(1)=4*x(1).^2+x(2).^2+2*x(1).*x(2)-x(2)-2
y(2)=2*x(1).^2+x(2).^2+3*x(1).*x(2)-3
y=[y(1) y(2)];
x0=[1 1];
fsolve(@fc,x0)
解二: syms x1 x2
[x1 x2]=solve(‘4*x1^2+ x2^2+2* x1* x2- x2-2=0’,’ 2*x1^2+ x2^2+3* x1* x2-3=0’,’ x1’,’ x2’)
《MATLAB程序设计》参考程序
一、 (30分)
1.
D =
0 -1
F =
2 0
2 0
0 6
2.
A1 =
1 3 3 0
A2 =
0 5 0 -3
-3 0 5 0
3.
max(P,[ ],1)=
2 2 5 4
mean(P,2)=
3
2
4.
x=15
5.
b =
0 1 4
-1 0 1
-4 -1 0
6.z =2010
7.285
二、(10分)
%1
t=0:0.1: 2*pi;
x= sin(t).^3;
y= cos (t).^3;
plot(x,y)
%2
[x,y]=meshgrid(-2:0.1:2);
z=(x.^2+1).* exp(-x.^2- y.^2+)+x.^2.*y;
mesh(x,y,z)
三、(16分)
%1
syms x
limit((x-1)*log(x)/(exp(x-1)-1),x,1)
%2
solve('exp(x)-3*cos(x)+1=0')
%3
syms x
M=[ exp(-x), x;sin(x),exp(-0.1*x)* cos(3*x)]
diff(M,2)
int(M,x,0,pi)
%4 syms t x
dsolve('Dx-6*x=exp(-t) ','x(0)=1')
四、(12分)
x=0.5:9.5;
y=[ 0.16, 0.40, 0.66, 0.75, 0.88, 1.0, 1.1, 1.1, 1.2, 1.3];
x1=1./x;y1=1./y;
p=polyfit(x1,y1,1);
a=p(2); b= p(1);
ye=x./(a*x+b);
plot(x,y,'ro', x, ye, 'b-')
grid on
xlabel('自变量x ')
ylabel('因变量y ')
title('因变量 y与自变量 x的拟合曲线图')
五、(12分)
%参考程序
cj=round(normrnd(70,10,100,4));
for i=1:100
for j=1:4
if cj(i,j)>100 cj(i,j)=100;
elseif cj(i,j)<0 cj(i,j)=0;
end
end
end
kmean=round(mean(cj))
disp('课程1 课程2 课程3 课程4')
disp(sprintf(' %4d%7d%8d%8d ' ,kmean(1),kmean(2),kmean(3),kmean(4)))
studentmean=round(mean(cj,2));
studentnumber=[1:100]';
[studentnumber, studentmean]
c=sum(sum(cj>=90))
d=sum(sum(cj<60,2)>=2)
六、(10分)
(1). function y=fun1(x,n)
y=0;
for k=1:n
y=y+ ((-1)^k*sin(k*x))/k;
end
y
(2). x=0:0.1:2*pi;
y1= fun1 (x,20);
y2= fun1 (x,50);
subplot(211),plot(x,y1)
subplot(212),plot(x,y2)
七、(10分)
第一步:先将高阶微分方程转化为一阶微分方程组:
选择状态变量,则原方程化为
第二步:建立函数文件
function dxdt = fun2(t,x)
dxdt = [-3*t*x(1)+ x(2)+t; x(1)];
第三步:求解微分方程,命令如下:
[t,x]=ode45(@fun2,[0,10],[0;2])
补充:1.matlab中清屏的命令是———clc
2. matlab中用于清除工作空间变量的命令是——clear
3. 在【0,5】上求函数f=(x-3)^2-1的最小值。
解:先建立M文本:
Function f=myfun(x)
F=(x-3)^2-1;
End
后保存为myfun.m,然后在命令框中输入:
>>x=fminbnd(@myfun,0,5)
结果为在 x=3。
4. 隐函数求导问题:已知cos(x+siny)=siny ,求dy/dx.
解:(1)对方程两边求导
clear
syms x
g=sym('cos(x+sin(y(x)))=sin(y(x))')
dgdx=diff(g,x) 在matlab中运行可得结果
dgdx=-sin(x+sin(y(x)))*(cos(y(x))*diff(y(x),x)+1)=cos(y(x))*diff(y(x),x)
(2) 用符合规则的新变量名dydx代替dgdx中的diff(y(x),x)
dgdx1=subs(dgdx,'diff(y(x),x)','dydx') %必须采取的步骤
(3) 对变量dgdx1代表的符号方程关于dydx的求解,使dy/dx通过x,y表达出来。
dydx=solve(dgdx1,'dgdx') 即的隐函数的导数dydx。
本题说明:y必须写成y(x),表明y是x的函数;把dgdx中的diff(y(x),x)字符串替换为dydx,
这是必须的,是因为diff(y(x),x)不能作为求解的变量名使用。
5. 求和问题:求.
解: syms n k %定义符号变量
f=1/(k*(k+1));
S=symsum(f,1,n) %求和
运行结果的
S=1-1/(n+1)
展开阅读全文