数学实验模拟题Word文档格式.docx
《数学实验模拟题Word文档格式.docx》由会员分享,可在线阅读,更多相关《数学实验模拟题Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
[value,index]=
disp(sprintf('
最大值=%d'
value))
最大值位置序号=%d'
index))
总和=%d'
))
V=fix(51*rand(1,10));
%产生随机整数向量
%x=rand(m,n)产生m行n列的位于(0,1)区间的随机数
%fix朝零方向取整,如fix(-1.3)=-1;
fix(1.3)=1;
[value,index]=max(V)
sum(V)))
2程序设计语句
三、有一随机数向量v,请分别用for循环、不要循环语句求向量各元素绝对值之和,并分别将计算结果赋给变量s1,s2.已经编写了v的初始化代码.
N=100;
v=rand(1,N);
参考程序:
s1=0;
fori=1:
N,
s1=s1+abs(v(i));
end
s2=sum(abs(v));
注:
通过该程序说明了Matlab语言的一些特点.
四、有一个向量
,
中元素为区间[0,100]上的随机数,编程求解下列式子:
,其中u为不超过n的最大奇数.整数n通过input函数输入。
n=input('
输入n='
v=fix(101*rand(1,n));
%第1个版本:
用for循环语句
%下面执行效率不高;
考虑不用循环语句的实现
2:
n
s1=s1+v(i)^2;
%另一个版本
ii=1:
n;
s1=sum(v(ii).^2)
3函数
五、已知函数
.请编写function函数文件计算
函数值.
functionr=fun(x)
ifx<
-1,
r=x-10;
elseifx<
=1,
r=x*x+1;
else
r=x+10;
六、已知函数
.请编写函数文件计算
functionr=fun(x,y)
t=x*x+y*y;
ift<
=1,
r=sqrt(t);
r=2*x*x+3*y*y;
七、已知函数
elseift>
=4,
r=2*x*x+3*y*y;
error('
输入数据错误'
)%输入点不在定义域内
4绘图
八、请绘制曲线
.
t=linspace(0,2*pi,50);
x=t+t.^2;
y=cos(t).*sin(t);
plot(x,y)
九、请用三种方法绘制曲线
(
).
functiontestmain
subplot(2,2,1)%使用ezplot
ezplot('
sin(x)+cos(x)'
[02*pi])
subplot(2,2,2)%使用plot
x=linspace(0,2*pi,100);
%或x=0:
0.1:
2*pi;
plot(x,sin(x)+cos(x))
subplot(2,2,3)%使用plot,计算函数值使用了inline函数
fun=inline('
'
x'
fplot(fun,[0,2*pi])
subplot(2,2,4)%使用plot,定义函数
plot(x,myfun(x))
%第5种:
使用fplot,定义函数
figure
fplot(@myfun,[02*pi])
functionr=myfun(x)
r=sin(x)+cos(x);
一十、设
,画出定义域
内的曲面图。
[x,y]=meshgrid([-4:
4]);
z=x.*y.*exp(-x.^2+2*x.*y+y.^2);
mesh(x,y,z)
一十一、
(1)已知曲面方程
,请编写程序绘制曲面.
(2)已知曲面方程
%
(1)
h=0.1;
[X,Y]=meshgrid(2:
h:
8,1:
9);
Z=sqrt(2*X.^2+3*Y.^2);
mesh(X,Y,Z)
%
(2)
r=1:
3;
theta=0:
0.2:
[R,T]=meshgrid(r,theta);
X=R.*cos(T);
Y=R.*sin(T);
一十二、已知函数
,画出函数在区间
上的曲线。
x1=-5:
0.01:
-2;
y1=x1.^2-2.*x1-3;
x2=-2:
2;
y2=x2.^2-1;
x3=2:
5;
y3=x3.^2+2.*x3-1;
holdon;
plot(x1,y1);
plot(x2,y2);
plot(x3,y3)
%orplot(x1,y1,x2,y2,x3,y3)
一十三、绘制参数曲线
的图形.
t=-2*pi:
pi/100:
x=2*cos(t).*cos(t);
y=3*sin(t).*sin(t);
z=1+2*t;
plot3(x,y,z);
grid;
xlabel('
),ylabel('
y'
),zlabel('
)
5微积分、符号计算
一十四、填空题(在下划线上填写答案)
有一个微分方程
.请编程求出特解,并画出解曲线。
clear
y=dsolve()
fun=inline(char(y),'
t'
T=;
Y=zeros(size(T));
length(T),
Y(i)=;
%利用fun计算函数值
plot(T,Y,'
*'
y=dsolve('
Dy=0.1*(1-0.002*y)*y'
y(0)=10'
T=0:
100;
Y(i)=fun(T(i));
一十五、求函数
的一阶导数(赋给D1);
并求
(赋给D2).
symsabxy;
y=exp(a*x)*sin(b*x);
D1=diff(y,x,1)
D2=subs(D1,x,1/(a+b))
6线性代数
一十六、求矩阵
的转置.
A=[2,6,5;
10,4,1;
4,7,4;
1,5,9];
S=A'
一十七、设
求
A=[2,3,6;
3,0,5];
B=[2,9,6;
1,5,3];
S1=A+2*B
S2=B-3*A
一十八、设
,求
;
并求矩阵
的逆阵。
A=[25512;
-33-58;
7429];
B=[6551;
8-436;
25105];
C1=A*B'
C2=A'
*B
A1=inv(C1)
A2=inv(C2)
%inv是什么?
7数值计算
一十九、某种复合物质的主要成分为A。
经过试验和分析,发现主要成分A与其性能指标E之间有一定的数量关系。
下面有一组数据。
A
37.0
37.5
38.0
38.5
39.0
39.5
40.0
40.5
41.0
41.5
42.0
42.5
43.0
E
3.40
3.00
2.27
2.10
1.83
1.53
1.70
1.80
1.90
2.35
2.54
2.90
请编写程序绘出散点图,并用二次多项式函数拟合数据,然后分别预测A=44,45时,指标E的值。
A=[37.037.538.038.539.039.540.040.541.041.542.042.543.0];
E=[3.403.003.002.272.101.831.531.701.801.902.352.542.90];
plot(A,E,'
a=polyfit(A,E,2);
Fnew=polyval(a,[4445])
8最优化方法
二十、某化学品生产厂家生产A、B两种产品,产一吨A产品用R1资源3吨,R2资源5m3,R3资源9件.;
产一吨B产品用R1资源4吨,R2资源5m3,R3资源7件.一吨A产品和B产品分别价值60万元和70万元,资源R1、R2、R3现有量分别为140吨、180m3和220件.另外要求生成的A产品不低于4吨,B产品不低于3吨。
生产两种产品各多少才能使总价值最高?
请为此建立优化模型并用linprog函数求解。
参考答案:
问题分析:
可建立最优化模型求解问题。
目标:
生产的2种产品的总价值最高;
决策:
两种产品的产量
约束条件:
三种资源的限制
变量:
设x,y分别表示生产A、B两种产品的产量(5分)
(目标函数:
5分,条件:
5分)
f=[-60-70];
%单价
A=[34;
55;
97];
%量
b=[140;
180;
220];
lb=[4;
3];
ub=[inf;
inf];
[x,val,flag]=linprog(f,A,b,[],[],lb,ub)
9随机模拟、蒙特卡罗法
二十一、请用蒙特卡罗法计算曲线
与曲线
所围区域面积。
提示:
计算曲线交点A(-2,4),B(3,9)。
可用x=-2,x=3,y=0,y=9围成的矩形包含这个区域。
再随机投点实验。
下面是两条曲线.
x=linspace(-2,3,50);
y1=x.^2;
y2=x+6;
plot(x,y1,x,y2)
参考程序1:
%1.随机投点
N=10000;
x=5*rand(1,N);
%x=unifrnd(0,5,1,N);
y=3*rand(1,N);
%y=unifrnd(0,3,1,N);
%2.绘图
plot(x,y,'
.'
%3.统计
num=sum(y>
x.^2&
y<
x+6)
参考程序2:
idxs=find(y>
x+6);
num=length(idxs);
二十二、请向直线
所围平面区域内随机投10000个点,绘出投点,并统计在直线
上方的点有多少(赋值给num)。
N=10000;
x=5*rand(1,N);
y=3*rand(1,N);
idx=find(y>
=x);
num=length(idx)
%前2行可以用下列代码完成
num=sum(y>
=x)
二十三、已知某物体由圆锥面
和半球面
所围。
该三维立体含于区域
内。
请用蒙特卡罗方法计算体积。
functionV=simfun(N)
ifnargin==0
N=10000;
ifN<
10000,
warning('
输入参数投点个数N<
10000'
r=rand(N,3);
x=2*r(:
1)-1;
y=2*r(:
2)-1;
z=2*r(:
3);
t1=x.^2+y.^2;
t2=sqrt(t1);
index=find(z>
=t2&
z<
=1+sqrt(1-t1));
m=length(index);
%orm=sum(z>
=t1&
=1+sqrt(1-t2));
V=8*m/N;