资源描述
第二章
1·求下列表达式的值。
(1)w=sqrt(2)*(1+0.34245*10^-6)
w =
1.4142
(2)a=3.5;b=5;c=-9.8;
x=(2*pi*a+(c+b)/(pi+a*b*c)-exp(2))/(tan(b+c)+a);
x
x =
0.9829
(3)a=3.32;b=-7.9;
y=2*pi*a^2*[(1-pi/4)*b-(0.8333-pi/4)*a];
y
y =
-128.4271
(4)t=[2,1-3i;5,-0.65];
z=1/2*exp(2*t)*log(t+sqrt(1+t^2));
z
z =
1.0e+004 *
0.0057 - 0.0007i 0.0049 - 0.0027i
1.9884 - 0.3696i 1.7706 - 1.0539i
2,已知a,b,求下列表达式的值。
a=[-1,5,-4;0,7,8;3,61,7];b=[8,3,-1;2,5,3;-3,2,0];
(1)a+6*b
ans =
47 23 -10
12 37 26
-15 73 7
a^2-b+eye(3)
ans =
-18 -217 17
22 533 109
21 867 526
(2)a*b
ans =
14 14 16
-10 51 21
125 328 180
a.*b
ans =
-8 15 4
0 35 24
-9 122 0
b*a
ans =
-11 0 -15
7 228 53
3 -1 28
(3)a/b
ans =
1.2234 -0.9255 2.9787
-0.9468 2.3511 -0.9574
4.6170 3.8723 13.8936
b\a
ans =
-0.5106 -8.6170 -1.1277
0.7340 17.5745 1.8085
-0.8830 -21.2128 0.4043
(4)[a,b]
ans =
-1 5 -4 8 3 -1
0 7 8 2 5 3
3 61 7 -3 2 0
[a([1,3],:);b^2]
ans =
-1 5 -4
3 61 7
73 37 1
17 37 13
-20 1 9
3.已知a,完成下列操作。
a=[23,10,-0.778,0;41,-45,65,5;32,5,0,32;6,-9.54,54,3.14];
(1) 输出a在[10,25]范围内的全部元素。
k=find(a>10&a<25)
a(k)
k =
1
ans =
23
(2)取出a前3行构成矩阵b,前两列构成矩阵c,右下角3*2子矩阵构成矩阵d,b与c的乘积构成矩阵e。
b=a(1:3,:)
b =
23.0000 10.0000 -0.7780 0
41.0000 -45.0000 65.0000 5.0000
32.0000 5.0000 0 32.0000
c=a(:,1:2)
c =
23.0000 10.0000
41.0000 -45.0000
32.0000 5.0000
6.0000 -9.5400
d=a(2:4,3:4)
d =
65.0000 5.0000
0 32.0000
54.0000 3.1400
e=b*c
e =
1.0e+003 *
0.9141 -0.2239
1.2080 2.7123
1.1330 -0.2103
(3)分别求表达式额e<d,e&d,e|d和~e|~d的值。
e<d
ans =
0 1
0 0
0 1
e&d
ans =
1 1
0 1
1 1
e|d
ans =
1 1
1 1
1 1
~e|~d
ans =
0 0
1 0
0 0
4,产生5阶希尔伯特矩阵H和5阶帕斯卡矩阵P,且求其行列式的值Hh和Hp以及他们的条件数Th和Tp,判断哪个矩阵性能更好,为什么?
format rat
H=hilb(5)
H =
1 1/2 1/3 1/4 1/5
1/2 1/3 1/4 1/5 1/6
1/3 1/4 1/5 1/6 1/7
1/4 1/5 1/6 1/7 1/8
1/5 1/6 1/7 1/8 1/9
P=pascal(5)
P =
1 1 1 1 1
1 2 3 4 5
1 3 6 10 15
1 4 10 20 35
1 5 15 35 70
Hh=det(H)
Hh =
1/266716800000
Hp=det(P)
Hp =
1
Th=cond(H)
Th =
476607
Tp=cond(P)
Tp =
178868/21
P矩阵性能更好,因为Tp更接近1.
5.已知A,求A的特征值及特征向量,并分析其数学意义。
A=[-29,6,18;20,5,12;-8,8,5]
A =
-29 6 18
20 5 12
-8 8 5
[V,D]=eig(A,'nobalance')
V =
1 361/1013 493/1574
-1227/1438 -1 1
290/593 551/788 331/713
D =
-3595/142 0 0
0 -3755/357 0
0 0 4697/279
第三章
1. 从键盘输入一个3位整数,将它反向输出。如输入639,输出为936.
clear
m=input('请输入一个三位数:');
m1=fix(m/100);
m2=rem(fix(m/10),10);
m3=rem(m,10);
m=m1+m2*10+m3*100;
disp(m);
请输入一个三位数:453
354
2.输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。要求:
(1)分别用if语句和switch语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
c=input('请输入一个百分制分数:');
if c>=90&c<=100 %用if语句实现
disp('A');
elseif c>=80&c<90
disp('B');
elseif c>=70&c<80
disp('C');
elseif c>=60&c<70
disp('D');
elseif c>=0&c<60
disp('E');
else
disp('输入出错');
end
请输入一个百分制分数:88
B
c=input('请输入一个百分制分数:');
switch fix(c/10) %用switch语句实现
case{9,10}
m='A';
case{8}
m='B';
case{7}
m='C';
case{6}
m='D';
casenum2cell(0:5)
m='E';
otherwise
m='输入出错';
end
disp(m);
请输入一个百分制分数:98
A
3.输入20个数,求其中最大数和最小数。要求分别用循环结构和调用MATLAB的max函数、min函数来实现。
a=input('请输入二十个数'); %用循环结构实现
max=a(1);
min=a(1);
for i=1:20;
if max<a(i);
max=a(i);
end
if min>a(i);
min=a(i);
end
end
max
min
请输入二十个数[ 3 4 6 5 3 44 5 5 5 6 6 5 5 4 3 32 2 2 2 6]
max =
44
min =
2
4.,当a取-3.0、-2.9、-2.8、…、2.8、2.9、3.0时,求各点的函数值。要求分别用顺序结构和循环结构实现。
clear
for a=-3.0:0.1:3.0 %用循环结构实现
y=((exp(0.3*a)-exp(-0.3*a))/2)*sin(a+0.3)+log((0.3+a)/2)
end
y =
0.7388 + 3.1416i
y =
0.7696 + 3.1416i
y =
0.7871 + 3.1416i
y =
0.7913 + 3.1416i
y =
0.7822 + 3.1416i
y =
0.7602 + 3.1416i
y =
0.7254 + 3.1416i
y =
0.6784 + 3.1416i
y =
0.6196 + 3.1416i
y =
0.5496 + 3.1416i
y =
0.4688 + 3.1416i
y =
0.3780 + 3.1416i
y =
0.2775 + 3.1416i
y =
0.1680 + 3.1416i
y =
0.0497 + 3.1416i
y =
-0.0771 + 3.1416i
y =
-0.2124 + 3.1416i
y =
-0.3566 + 3.1416i
y =
-0.5104 + 3.1416i
y =
-0.6752 + 3.1416i
y =
-0.8536 + 3.1416i
y =
-1.0497 + 3.1416i
y =
-1.2701 + 3.1416i
y =
-1.5271 + 3.1416i
y =
-1.8436 + 3.1416i
y =
-2.2727 + 3.1416i
y =
-2.9837 + 3.1416i
y =
-37.0245
y =
-3.0017
y =
-2.3085
y =
-1.8971
y =
-1.5978
y =
-1.3575
y =
-1.1531
y =
-0.9723
y =
-0.8083
y =
-0.6567
y =
-0.5151
y =
-0.3819
y =
-0.2561
y =
-0.1374
y =
-0.0255
y =
0.0792
y =
0.1766
y =
0.2663
y =
0.3478
y =
0.4206
y =
0.4841
y =
0.5379
y =
0.5815
y =
0.6145
y =
0.6366
y =
0.6474
y =
0.6470
y =
0.6351
y =
0.6119
y =
0.5777
y =
0.5327
y =
0.4774
y =
0.4126
y =
0.3388
5.当n分别取100、1000、10000时,求下列各式的值:
(1)
clear
n=input('输入一个数:'); %用循环结构实现
a=0;
for i=1:n
a=a+1/(i^2);
end
disp(a);
j=1:n; %用sum函数实现
b=sum(1./(j.^2));
输入一个数:34
b =
1.6160
(2)()()()()(=)
clear
n=input('输入一个数:'); %用循环结构实现
a=1;
for i=1:n
a=((2*i*i*2)/((2*i-1)*(2*i+1)))*a;
end
disp(a);
输入一个数:8
1.5253
6.建立65´矩阵,要求输出矩阵第n行元素。当n值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错信息。
clear
a=rand(5,6);
n=input('请输入一个数:');
if n>5
n=5
a(n,:)
disp('输入超出范围');
else
a(n,:)
end
请输入一个数:4
ans =
0.7792 0.0119 0.5285 0.6892 0.9133 0.0782
请输入一个数:7
n =
5
ans =
0.4909 0.1112 0.0965 0.0598 0.0430 0.4509
输入超出范围
7.已知
(1)当f(n)=n+10ln(n^2+5)时,y的值是多少。
function a=n2a(n)
a=n+10*log(n*n+5)
y=n2a(40)/(n2a(30)+n2a(20))
a =
113.8088
a =
98.0793
a =
80.0389
y =
0.6390
(2)当f(n)=1*2+2*3+3*4++n*(n+1)时,y的值是多少。
function b=n1b(n)
b=0;
for i=1:n
b=b+i*(i+1);
end
y=n1b(40)/(n1b(30)+n1b(20))
y =
1.7662
第四章
1.绘制下列曲线。
(1)y=x-
x=-10:0.05:10;
y=x-x.^3/6;
plot(x,y)
(2)
x=-10:0.5:10;
ezplot('x^2+2*y^2-64',[-8,8]);
grid on;
2,设
, -π≤t≤π,
在同一图形窗口采用子图的形式绘制条形图,阶梯图,杆图和对数坐标图等不同图形,并对不同图形加标注说明。
t=-pi:pi/10:pi;
y=1./(1+exp(-t));
subplot(2,2,1);
bar(t,y);
title('条形图(t,y)');
axis([-pi,pi,0,1]);
subplot(2,2,2);
stairs(t,y,'b');
title('阶梯图(t,y)');
axis([-pi,pi,0,1]);
subplot(2,2,3);
stem(t,y,'k');
title('杆图(t,y)');
axis([-pi,pi,0,1]);
subplot(2,2,4);
loglog(t,y,'y');
title('对数坐标图(t,y)');
Warning: Negative data ignored
> In title at 42
In title at 23
3.绘制下列极坐标图。
(1)
t=0:pi/50:2*pi;
r=5.*cos(t)+4;
polar(t,r);
title('\rho=5*cos\theta+4');
(2), -
t=-pi/3:pi/50:pi/3;
r=5.*((sin(t)).^2)./cos(t);
polar(t,r);
4.绘制下列三维图形。
(1), 0.
t=0:pi/50:2*pi;
x=exp(-t./20).*cos(t);
y=exp(-t./20).*sin(t);
z=t;
plot3(x,y,z);
grid on;
(2)z=5,|x|5,|y|5.要求应用插值着色处理。
[x,y]=meshgrid(-5:5);
z=zeros(11)+5;
mesh(x,y,z);
shading interp;
5.播放一个直径不断变化的球体。
[x,y,z]=sphere(20);
surf(x,y,z);
axis off;
shading interp;
m=moviein(20);
for i=1:20
axis([-i,i,-i,i,-i,i])
m(:,i)=getframe;
end
movie(m,4);
第五章
1, 利用matlab提供的randn函数生成符合正态分布的10*5随机矩阵A,进行以下操作:
(1) A各列元素的均值和标准方差。
(2) A的最大元素和最小元素。
(3) 求A每行元素的和以及全部元素的和。
(4) 分别对A的每列元素按升序,每行元素按降序排列。
A=randn(10,5)
x=mean(A)
y=std(A)
Max=max(max(A))
Min=min(min(A))
Sumhang=sum(A,2)
SumA=sum(Sumhang)
B=sort(A);
C=sort(B,2,'descend');
C
A =
-0.8637 -1.0891 -0.6156 1.4193 -1.1480
0.0774 0.0326 0.7481 0.2916 0.1049
-1.2141 0.5525 -0.1924 0.1978 0.7223
-1.1135 1.1006 0.8886 1.5877 2.5855
-0.0068 1.5442 -0.7648 -0.8045 -0.6669
1.5326 0.0859 -1.4023 0.6966 0.1873
-0.7697 -1.4916 -1.4224 0.8351 -0.0825
0.3714 -0.7423 0.4882 -0.2437 -1.9330
-0.2256 -1.0616 -0.1774 0.2157 -0.4390
1.1174 2.3505 -0.1961 -1.1658 -1.7947
x =
-0.1095 0.1282 -0.2646 0.3030 -0.2464
y =
0.9264 1.2631 0.8129 0.8842 1.3151
Max =
2.5855
Min =
-1.9330
Sumhang =
-2.2970
1.2545
0.0661
5.0489
-0.6988
1.1002
-2.9310
-2.0595
-1.6878
0.3112
SumA =
-1.8932
C =
-1.1658 -1.2141 -1.4224 -1.4916 -1.9330
-0.8045 -1.0891 -1.1135 -1.4023 -1.7947
-0.2437 -0.7648 -0.8637 -1.0616 -1.1480
0.1978 -0.6156 -0.6669 -0.7423 -0.7697
0.2157 0.0326 -0.1961 -0.2256 -0.4390
0.2916 0.0859 -0.0068 -0.0825 -0.1924
0.6966 0.5525 0.1049 0.0774 -0.1774
1.1006 0.8351 0.4882 0.3714 0.1873
1.5442 1.4193 1.1174 0.7481 0.7223
2.5855 2.3505 1.5877 1.5326 0.8886
2,按要求对指定函数进行插值和拟合。
(1) 按表一所示用三次样条方法插值计算0~90°内整数点的正弦值和0~75°内整数点的正切值,然后用5次多项式拟合方法计算相同的函数值,并将两种计算结果进行比较。
(2) 按表二所示用3次多项式方法插值计算1~100之间整数的平方根。
表一 特殊角的正弦与正切值表
α(度)
0
15
30
45
60
75
90
sinα
0
0.2588
0.5000
07071
0.8660
0.9659
1.0000
tanα
0
0.2679
0.5774
1.0000
1.7320
3.7320
表二 1~100内特殊值的平方根表
N
1
4
9
16
25
36
49
64
81
100
√N
1
2
3
4
5
6
7
8
9
10
a=0:15:90;
b=a./180.*pi;
s=sin(b)
c=0:15:75;
d=c./180.*pi;
t=tan(d)
e=input('请输入想计算的值:');
S=sin(e/180*pi)
T=tan(e/180*pi)
S1=interp1(a,s,e,'spline')
T1=interp1(c,t,e,'spline')
P1=polyfit(a,s,5);
P2=polyfit(c,t,5);
S2=polyval(P1,e)
T2=polyval(P2,e)
s =
0 0.2588 0.5000 0.7071 0.8660 0.9659 1.0000
t =
0 0.2679 0.5774 1.0000 1.7321 3.7321
请输入想计算的值:S =
0.8660
T =
1.7321
S1 =
0.8660
T1 =
1.7321
S2 =
0.8660
T2 =
1.7321
(2)
n=[1,9,16,25,36,49,64,81,100];
N=sqrt(n);
x=input('计算值 : ');
interp1(n,N,x,'cubic')
计算值 : ans =
5
3,已知h(t)=e^-t,t≥0,取N=64,对t从0~5秒采样,用FFT作快速傅里叶变换,并绘制相应的振幅——频率图。
N=64;
T=5;
t=linspace(0,T,N);
h=exp(-t);
dt=t(2)-t(1);
f=1/dt;
X=fft(t);
F=X(1:N/2+1);
f=f*(0:N/2)/N;
plot(f,abs(F),'-*')
4,有两个多项式P(x)=2x^4-3x^3+5x+13,Q(x)=x^2+5x+8,试求P(x),P(x)Q(x)以及P(x)/Q(x)的导数。
P=[2,-3,0,5,13];
Q=[1,5,8];
p=polyder(P)
q=polyder(P,Q)
[a,b]=polyder(P,Q)
p =
8 -9 0 5
q =
12 35 4 -57 76 105
a =
4 27 34 -77 -26 -25
b =
1 10 41 80 64
5,有3个多项式P1(x)=x^4+2x^3+4x^2+5,P2(x)=x+2,P3(x)=x^2+2x+3,试进行下列操作:
(1) 求P(x)=P1(x)+P2(x)P3(x)。
(2) 求P(x)的根。
(3) 当x取矩阵A的每一元素时,求P(x)的值。其中
A=-1 1.2 -1.4
0.75 2 3.5
0 5 2.5
(4) 当以矩阵A为自变量时,求P(x)的值。其中A的值与(3)相同。
P1=[1,2,4,0,5];
P2=[0,1,2];
P3=[1,2,3];
P=P1+conv(P2,P3)
X=roots(P)
A=[-1,1.2,-1.4;0.75,2,3.5;0,5,2.5];
p=polyval(P,A)
??? Undefined function or variable 'x'.
第六章
1,下面是一个线性病态方程组:
*=
(1) 求方程的解。
(2) 将方程右边向量元素b3改为0.53,再求解,并比较b3的变化和解的相对变化。
(3) 计算系数矩阵A的条件数并分析结论。
A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6];
p=[0.95,0.67,0.52]';
x=A\p
A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6];
p=[0.95,0.67,0.53]';
x=A\p
cond(A)
x =
1.2000
0.6000
0.6000
x =
3.0000
-6.6000
6.6000
ans =
1.3533e+003
2,求下列方程的解。
(1)
function fx=fun(x)
fx=x.^41+x.^3+1;
x0=fzero('fun',-1)
x0 =
-0.9525
(2) x-=0,x0=0.5
function fx=fun(x)
fx=x-sin(x)/x;
x0=fzero('fun',-1)
x0 =
0.8767
(3) ,初值x0=1,y0=1,z0=1.
function q=myfun(d)
x=d(1)
y=d(2)
z=d(3)
q(1)=sin(x)+y^2+log(z)-7;
q(2)=3*x+2^y-z^3+1;
q(3)=x+y+z-5
options=optimset('Display','off');
x=fsolve(@myfun,[1,1,1]',options)
4,求函数在指定区间的最大值。
,x∈(0,2)
function [x y]=qiujizhi()
h=0.00001; %%解的精度
x=0.6;
y=(1+x^2)/(1+x^4);
while (1+(x+h)^2)/(1+(x+h)^4) > y
x=x+h;
y=(1+x^2)/(1+x^4);
end
fprintf('极大值时x取值%5.20d,极大值时y=,%5.20d',x,y);
极大值时x取值6.43589999999801600000e-001,极大值时y=,1.20710678115567080000e+000ans =
0.6436
5,设有400万元资金,要求4年内使用完,若在一年内使用资金x万元,则可得效益√x万元(效益不能再使用),当年不用的资金可存入银行,年利率为10%。试制定出资金的使用计划,以使4年效益之和最大。
(1) 先建立M文件 fun4.m,定义目标函数:
function f=fun4(x)
f=-(sqrt(x(1))+sqrt(x(2))+sqrt(x(3))+sqrt(x(4)));
(2) 再建立M文件mycon.m定义非线性约束:
function [g,ceq]=mycon(x)
g(1)=x(1)-400;
g(2)=1.1*x(1)+x(2)-440;
g(3)=1.21*x(1)+1.1*x(2)+x(3)-484;
g(4)=1.331*x(1)+1.21*x(2)+1.1*x(3)+x(4)-532.4; ceq=0
(3) 主程序youh4.m为:
x0=[1;1;1;1];
vlb=[0;0;0;0];
vub=[];
A=[];
b=[];
Aeq=[];
beq=[];
[x,fval]=fmincon('fun4',x0,A,b,Aeq,beq,vlb,vub,'mycon')
x =
86.2973
103.7455
127.0954
152.2013
fval =
-43.0858
第七章
1,求定积分。
(1) I=
(2) I=
(1) format long
fx=inline('sin(x)./x');
[I,n]=quadl(fx,0,2,1e-10)
I =
1.605412976793583
n =
19
(2)format long
fx=inline('1./((x-0.3).^2+0.01)-1./((x-0.9).^2+0.04)-6');
[I,n]=quad(fx,0,1,1e-10)
I =
11.700575496289522
n =
985
2,求二重定积分。
(1)
global ki;
ki=0;
I=dblquad(@fxy,0,1,0,1)
k
展开阅读全文