数学模型习题解答解读.docx
《数学模型习题解答解读.docx》由会员分享,可在线阅读,更多相关《数学模型习题解答解读.docx(35页珍藏版)》请在冰豆网上搜索。
数学模型习题解答解读
上机练习题一
班级:
姓名:
学号:
1.建立起始值=3,增量值=5.5,终止值=44的一维数组x答案:
x=(3:
5.5:
44)
2.写出计算Sin(30o)的程序语句.答案:
sin(pi*30/180)或sin(pi/6)
3.矩阵
矩阵
;分别求出
及A与B中对应元素之间的乘积.
答案:
A=[3,2,3;4,2,6;7,8,1]
B=[1,1,1;2,2,2;3,3,3]
A*B;A.*B
4计算行列式的值
。
答案:
det(A)
5对矩阵
进行下述操作。
(1)求秩。
答案:
rank(A)
(2)求转置。
答案:
A'
(3)对矩阵求逆,求伪逆。
答案:
inv(A),pinv(A)
(4)左右反转,上下反转。
答案:
fliplr(A),flipud(A)
(5)求矩阵的特征值.答案:
[u,v]=eig(A)
(6)取出上三角和下三角.答案:
triu(A)tril(A)
(7)以A为分块作一个3行2列的分块矩阵。
答案:
repmat(a)
6计算矩阵
与
之和。
>>a=[535;374;798];
>>b=[242;679;836];
>>a+b
7计算
与
的数组乘积。
>>a=[693;275];
>>b=[241;468];
>>a.*b
ans=
12363
84240
8已知:
,分别计算a的数组平方和矩阵平方,并观察其结果。
>>a=[123;456;789];
>>a.^2
ans=
149
162536
496481
>>a^2
ans=
303642
668196
102126150
上机练习题二
班级:
姓名:
学号:
1对于
,如果
,
,求解X。
>>A=[492;764;357];
>>B=[372628]’;
>>X=A\B
X=
-0.5118
4.0427
1.3318
2角度
,求x的正弦、余弦、正切和余切。
>>x=[304560];
>>x1=x/180*pi;
>>sin(x1)
ans=
0.50000.70710.8660
>>cos(x1)
ans=
0.86600.70710.5000
>>tan(x1)
ans=
0.57741.00001.7321
>>cot(x1)
ans=
1.73211.00000.5774
3将矩阵
、
和
组合成两个新矩阵:
(1)组合成一个43的矩阵,第一列为按列顺序排列的a矩阵元素,第二列为按列顺序排列的b矩阵元素,第三列为按列顺序排列的c矩阵元素,即
(2)按照a、b、c的列顺序组合成一个行矢量,即
答案:
a=[42;57];
b=[71;83];
c=[59;62];
%
(1)
>>d=[a(:
)b(:
)c(:
)]
d=
475
586
219
732
%
(2)
>>e=[a(:
);b(:
);c(:
)]'
e=
452778135692
或利用
(1)中产生的d
>>e=reshape(d,1,12)
ans=
452778135692
4求解在x=8时多项式(x-1)(x-2)(x-3)(x-4)的值。
>>p=poly([1234]);
>>polyvalm(p,8)%polyval(p,8)
ans=
840
5求方程
的全部根。
p=[3,7,9,0,-23];%建立多项式系数向量
x=roots(p)%求根
上机练习题三
班级:
姓名:
学号:
1、设x是数组,求均值和方差
解:
函数文件如下:
function[xx,s]=func1(x)
n=length(x);
xx=sum(x)/n;
s=sqrt((sum(x.^2)-n*xx^2)/(n-1));
命令窗口:
>>x=[12345];[xx,s]=func1(x)
2、求满足
的最小m值
s=0;
n=0;
while(s<=100)
s=s+log(1+n);
n=n+1;
end
n,s
3、用循环语句形成Fibonacci数列
。
并验证极限
(提示:
计算至两边误差小于精度1e-8为止)
解:
求Fibonacci数列的函数文件:
functionfibo(k)
clc;
f
(1)=1;
f
(2)=1;
forn=3:
k
f(n)=f(n-1)+f(n-2)
end
f(k)
验证极限的函数文件:
function[k,a]=funTest(e)
a=abs(1-(1+sqrt(5))/2);
k=2;
while(a>e)
k=k+1;
a=abs(fun(k)/fun(k-1)-(1+sqrt(5))/2);
end
命令行:
>>[k,a]=funTest(10^-8)
k=
21
a=
9.7719e-009
或者M文件如下:
clear;F
(1)=1;F
(2)=1;k=2;x=0;
e=1e-8;a=(1+sqrt(5))/2;
whileabs(x-a)>e
k=k+1;F(k)=F(k-1)+F(k-2);x=F(k)/F(k-1);
end
a,x,k
4、分别用for和while循环结构编写程序,求出
,并考虑一种避免循环语句的程序设计,比较各种算法的运行时间。
解:
for循环结构:
M文件loop.m
k=0;
fori=1:
10^6
k=k+sqrt(3)*2^-i;
end
k
while循环结构:
M文件loop1.m
k=0;i=1;
whilei<=10^6
k=k+sqrt(3)*2^(-i);
i=i+1;
end
k
非循环结构:
M文件nonLoop.m
i=1:
10^6;
x=sqrt(3)*(2.^-i);
k=sum(x)
速度比较:
>>tic;loop;toc%循环结构的执行时间
k=
1.7321
Elapsedtimeis1.813000seconds.
>>tic;nonLoop;toc%非循环结构的执行时间
k=
1.7321
Elapsedtimeis1.094000seconds.
上机练习题四
班级:
姓名:
学号:
1、作图描述气温变化
>>x=0:
24;
>>y=[15,14,14,14,14,15,16,18,20,22,23,25,28,31,32,31,29,27,25,24,22,20,18,17,16];
>>plot(x,y)
2、作出下列函数图形
(1)
(分别使用plot和fplot完成)
解:
>>fplot('x^2*sin(x^2-x-2)',[-22])%fplot方法
>>x=-2:
0.1:
2;y=x.^2.*sin(x.^2-x-2);plot(x,y)%plot方法如图(4.1)
(2)
(椭圆提示:
用参数方程)
解:
>>r=-pi:
0.1:
pi;x=2*cos(r);y=3*sin(r);plot(x,y)%如图(4.2)
解法二
x=-2:
1/100:
2;
y1=3*sqrt(1-x.^2/4);y2=-3*sqrt(1-x.^2/4);
plot(x,y1,'r-',x,y2,'r-');axisequaltight;
图(4.1)图(4.2)
(3)
(抛物面)
解:
(错误)>>x=[-3:
0.1:
3];y=[-3:
0.1:
3];z=x.^2+y.^2;plot3(x,y,z)%如图(4.31)
(正确)>>xa=-3:
0.1:
3;ya=-3:
0.1:
3;[x,y]=meshgrid(xa,ya);%如图(4.32)
>>z=x.^2+y.^2;mesh(x,y,z);
>>surf(x,y,z)
图(4.31)error图(4.32)
(4)曲面
解:
>>xa=linspace(-3,3,100);ya=linspace(-3,13,100);
>>[x,y]=meshgrid(xa,ya);
>>z=x.^4+3*x.^2+y.^2-2*x-2*y-2*x.^2.*y+6;
>>mesh(x,y,z)
>>surf(x,y,z)
(5)空间曲线
解:
>>t=linspace(0,2,50);x=sin(t);y=cos(t);z=cos(2*t);
>>plot3(x,y,z)
(6)半球面
解:
>>a=linspace(0,pi/2,50);b=linspace(0,2*pi,50);
>>[a,b]=meshgrid(a,b);
>>x=2*sin(a).*cos(b);y=2*sin(a).*sin(b);z=2*cos(a);
>>surf(x,y,z)
(7)三条曲线合成图
解:
>>x=linspace(0,pi,50);y1=sin(x);
>>plot(x,y1);holdon;
>>y2=sin(x).*sin(10*x);
>>plot(x,y2);
>>y3=-sin(x);
>>plot(x,y3);
>>holdoff;
3、作下列分段函数图
x=-5:
0.1:
5;
fori=1:
length(x)
ifx(i)>1.1
y(i)=1.1;
elseifx(i)<-1.1
y(i)=-1.1;
else
y(i)=x(i);
end
end
plot(x,y);
gridon;
或者M文件如下:
x=-5:
0.1:
5;
y=1.1.*(x>1.1)+x.*(x<=1.1&x>=-1.1)-1.1.*(x<-1.1);
plot(x,y)
4、用MATLAB函数表示下列函数,并作图。
解:
建立M文件pxy如下:
xa=-2:
0.05:
2;ya=xa;
nx=length(xa);ny=length(ya);
[x,y]=meshgrid(xa,ya);
z=zeros(nx,ny);
[a1,b1]=find(x+y>1);%第a1列b1行对应的x+y>1(x对应列;y对应行)
%第a1列对应的x值是xa(a1);第b1行对应的y值是ya(b1)
z((a1-1)*ny+b1)=0.5457*exp(-0.75*ya(b1).^2-3.75*xa(a1).^2-1.5*xa(a1));
[a2,b2]=find(x+y<=1&x+y>-1);
z((a2-1)*ny+b2)=0.7575*exp(-ya(b2).^2-6*xa(a2).^2);
[a3,b3]=find(x+y<=-1);
z((a3-1)*ny+b3)=0.5457*exp(-0.75*ya(b3).^2-3.75*xa(a3).^2+1.5*xa(a3));
surf(x,y,z);
命令窗口:
>>pxy
运行结果如右图:
或者M文件如下:
clear;close;
xa=-2:
0.1:
2;ya=-2:
0.1:
2;[x,y]=meshgrid(xa,ya);
z=zeros(size(x));
k1=find(x+y>1);
z(k1)=0.5457*exp(-0.75*y(k1).^2-3.75*x(k1).^2-1.5*x(k1));
k2=find(x+y<=1&x+y>-1);
z(k2)=0.7575*exp(-y(k2).^2-6*x(k2).^2);
k3=find(x+y<-1);
z(k3)=0.5457*exp(-0.75*y(k3).^2-3.75*x(k3).^2+1.5*x(k3));
mesh(x,y,z);
或者M文件如下:
xa=-2:
0.05:
2;ya=xa;
[x,y]=meshgrid(xa,ya);
z=0.5457*exp(-0.75*y.^2-3.75*x.^2-1.5*x).*(x+y>1)+...
0.7575*exp(-y.^2-6*x.^2).*(x+y<=1&x+y>-1)+...
0.5457*exp(-0.75*y.^2-3.75*x.^2+1.5*x).*(x+y<=-1);
surf(x,y,z);
上机练习题五
班级:
姓名:
学号:
1、运行demo
解:
>>demo
2、查询trapz的功能、用法、目录、程序结构、相同目录下其它文件
解:
>>helptrapz――功能用法
>>typetrapz――程序结构,源码
>>whichtrapz――所在目录
>>helpC:
\MATLAB6p5\toolbox\matlab\datafun――该目录下其它文件
3在[0,4pi]画sin(x),cos(x)(在同一个图象中);其中cos(x)图象用红色小圆圈画.并在函数图上标注“y=sin(x)”,“y=cos(x)”,x轴,y轴,标题为“正弦余弦函数图象”.
x=linspace(0,4*pi,100);
y=sin(x);
plot(x,y);
gtext('y=sin(x)');%图形注解,注意要用鼠标定位
holdon;
y=cos(x);
plot(x,y,'ro');
gtext('y=cos(x)');%图形注解
xlabel('x轴');%x轴注解
ylabel('y轴');%y轴注解
title('正弦余弦函数图象');%图形标题
4从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。
sum=0;
cnt=0;
val=input('Enteranumber(endin0):
');
while(val~=0)
sum=sum+val;
cnt=cnt+1;
val=input('Enteranumber(endin0):
');
end
if(cnt>0)
sum
mean=sum/cnt
end
5若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是完数。
求[1,500]之间的全部完数。
form=1:
500
s=0;
fork=1:
m/2
ifrem(m,k)==0
s=s+k;
end
end
ifm==s
disp(m);
end
end
上机练习题六
班级:
姓名:
学号:
1假定数据点来源为:
,试根据生成的数据进行插值处理,得出较平滑的曲线。
x=0:
.12:
1;y=(x.^2-3*x+5).*exp(-5*x).*sin(x);plot(x,y,x,y,'o')
x1=0:
.02:
1;y0=(x1.^2-3*x1+5).*exp(-5*x1).*sin(x1);
y1=interp1(x,y,x1);
>>y2=interp1(x,y,x1,'cubic');
>>y3=interp1(x,y,x1,'spline');
>>y4=interp1(x,y,x1,'nearest');
>>plot(x1,[y1;y2;y3;y4],':
',x,y,'o',x1,y0)或者plot(x1,[y1',y2',y3',y4'],':
',x,y,'o',x1,y0)
2用不同插值的方法计算sin(x)在pi/2的值
clear
clc
x=0:
0.2:
pi;%产生包含被插值点的采样点(做成一个向量)
y=sin(x);%求出各采样点对应的样本值
y1=interp1(x,y,pi/2);%用默认的'linear'方法计算sin(pi/2)
y2=interp1(x,y,pi/2,'nearest');%用默认的'linear'方法计算sin(pi/2)
y3=interp1(x,y,pi/2,'cubic');%用三次多项式插值方法计算sin(pi/2)
y4=interp1(x,y,pi/2,'spline');%用三次样条插值方法计算sin(pi/2)
y5=spline(x,y,pi/2);%直接用'spline'方法计算sin(pi/2),功能与y4相同
disp('各种方法的插值结果:
')
out=['y1=',num2str(y1)
'y2=',num2str(y2);
'y3=',num2str(y3)]
out2=['y4=',num2str(y4)
'y5=',num2str(y5)]
3求
的通解
[x,y]=dsolve('Dx=4*x-2*y','Dy=2*x-y','t')
%P149(3)的求解
[x,y]=dsolve('Dx=a*y','Dy=-b*x','x(0)=x0','y(0)=y0','t')
y=dsolve('Dy=(b*x)/(a*y)','y(0)=y0','x');
4
方法一:
%微分方程的M函数funt.m文件
functiony=funt(t,y)
y=(y^2-t-2)/4/(t+1);
%以下是求解的脚本m函数,可自由取名,然后在command窗口调用该函数求解.
ts=[0,10];%自变量的求解区间
y0=2;%初值条件
[t,y]=ode23('funt',ts,y0);%用2,3阶龙格库塔方法求‘funt’文件里的微分方程
y1=sqrt(t+1)+1;%求精确解对应点上的函数值
[t,y,y1]%以三列的形式显示结果,其中第一列为采样点t对应的值,第二列为t对应的数值解,第二列为t对应的精确解。
方法二:
%或者直接用内建函数编写待求的微分方程,在一个M脚本文件里执行求解。
funt=inline('(y^2-t-2)/4/(t+1)')%内建函数编写待求的微分方程
ts=[0,10];%自变量的求解区间
y0=2;%初值条件
[t,y]=ode23(funt,ts,y0);%用2,3阶龙格库塔方法求‘funt’文件里的微分方程
y1=sqrt(t+1)+1;%求精确解对应点上的函数值
[t,y,y1]
5
第一种方法建立lorenz函数模型的状态方程
functionxp=lorenz(t,x)%建立lorenz函数模型的状态方程
xp=[-8/3,0,x
(2);0,-10,10;-x
(2),28,-1]*x%表明x是一个三维向量,前面是一个线性方程组的系数矩阵,xp%是一个三维的输出表示x
(1),x
(2),x(3)的一阶导数向量。
第二种方法建立lorenz函数模型的状态方程
functionxp=lorenz1(t,x)%建立lorenz函数模型的状态方程
xp=[-8/3*x
(1)+x
(2)*x(3);-10*x
(2)+10*x(3);-x
(2)*x
(1)+28*x
(2)-x(3)];
%求解微分方程
clear;clc;
x0=[0,0,eps]';%三个初值条件构成的向量
[t,x]=ode23('lorenz',[0,100],x0);
[t,x]
plot(t,x),grid,pause%绘制解x
(1),x
(2),x(3)各自相对于变量t的图象,按任意键后继续下面的程序
figure;plot3(x(:
1),x(:
2),x(:
3));%绘制解x
(1),x
(2),x(3)的关于系统的相平面图象
axis([10,40,-20,20,-20,20]);
上机练习题七
班级:
姓名:
学号:
1有一组测量数据如下表所示,数据具有y=x2+1的变化趋势,用最小二乘法求解y。
x
1
1.5
2
2.5
3
3.5
4
4.5
5
y
-1.4
2.7
3
5.9
8.4
12.2
16.6
18.8
26.2
>>x=[11.522.533.544.55]'
>>y=[-1.42.735.98.412.216.618.826.2]'
>>e=[ones(size(x))x.^2]
>>c=e\y
>>x1=[1:
0.1:
5]';
>>y1=[ones(size(x1)),x1.^2]*c;
>>plot(x,y,'ro',x1,y1,'k')
2求下列线性方程组的解
(1)
解:
>>a=[41-1;32-6;1-53];b=[9;-2;1];x=a\b%唯一解
x=
2.3830
1.4894
2.0213
(2)
解:
>>a=[4-33;32-6;1-53];b=[-1;-2;1];x=a\b%唯一解
x=
-0.4706
-0.2941
0
(3)
解:
>>a=[41;32;1-5];b=[1;1;1];x=a\b%最小二乘近似解
x=
0.3311
-0.1219
(4)
,求通解
解:
>>a=[21-11;121-1;1121];b=[1;2;3];
>>rank(a),rank([a,b])
ans=
3
ans=
3%说明有无穷多解
>>rref([a,b])%行最简化
ans=
1.0000001.50001.0000
01.00000-1.50000
001.00000.50001.0000
%通解为:
,
,
3、求下列矩阵的行列式、逆、特征值和特征向量
(1)
解:
>>a=[41-1;32-6;1-53];det(a),inv(a),[v,d]=eig(a)
ans=
-94行列式
ans=
0.2553-0.02130.0426
0.1596-0.1383-0.2234矩阵的逆
0.1809-0.2234-0.0532
v=
0.0185-0.9009-0.3066
-0.7693-0.1240-0.7248特征向量
-0.6386-0.41580.6170
d=
-3.052700
03.67600特征值
008.3766
(2)
解:
>>a=[431;33-5;1-53];det(a)