matlab课后答案

更新时间:2024-01-04 23:04:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Matlab程序设计实验报告

班级:08通信

姓名:翁惠柳 学号:222008315222023

实验 一 : matlab的基本操作

一、实验目的: 1, 2, 3, 4,

熟悉掌握基本矩阵的建立。

掌握一些简单操作、逻辑操作以及关系运算。

熟悉MATLAB的矩阵、数组运算及其函数的使用方法; 掌握定位矩阵元素的方法。

二、实验内容:

1、 利用基本矩阵产生3*3和15*8的单位阵、全1阵、全0阵、均匀分布的随机阵([-1,1]之间)、正态分布随机阵(均值为1,方差为4)。 2、 利用diag等函数产生下列矩阵: ?0?a?0??2?0?738??2??5 b?0????70??0504??0 ??8?然后利用reshape函数将它们变成行向量。

3、 产生一均匀分布的(-5,5)之间的随机阵(50*2),要求精确到小数点后一位。

4、 编程是实现当??[-?, ?],间隔为1?时求解正弦和余弦的值。

5、 利用rand函数产生(0,1)间均匀分布的10*10的随机矩阵A,然后统计A中大于等于

0.6的元素个数。 6、 利用randn函数产生均值为0,方差为1的10*10正态分布随机矩阵A,然后统计A中

大于-1.5且小于0.5的元素个数。 7、 编程实现下表功能: b a a<1 b<=0.5 语句1 b>0.5 语句2 语句4 a>=1 语句3 8、 有一矩阵A,找出矩阵中大于1的元素,并将它们重新排列成列向量B。 9、 在一矩阵A(100*3)中,存在奇异值(假设大于100的值认为是奇异值),编程实现删

去奇异值所在的行。

10、 在给定的100*100矩阵中,删去整行全为0的行,删去整行全为0的列。 三、实验结果: 1、程序:3*3的单位阵: >>a=eye(3) a =

1 0 0 0 1 0 0 0 1 15*8的单位阵:

1

Matlab程序设计实验报告

>>a=eye(15,8)

a =

1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3*3的全1阵: >>a=ones(3) a =

1 1 1 1 1 1 1 1 1 15*8的全1 阵

>>a=ones(15,8)

a =

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3*3的全0阵: >>a=zeros(3) a =

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2

1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Matlab程序设计实验报告

0 0 0 0 0 0 0 0 0 15*8的全0阵: >>a=zeros(15,8) a =

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3*3的均匀分布随机阵([-1,1]之间): >>r=2*rand(3,3)-1 r =

0.6294 0.8268 -0.4430

0.8116 0.2647 0.0938 -0.7460 -0.8049 0.9150

3*3的正态分布随机阵(均值为1,方差为4): >>r=2*randn(3,3)+1 r =

6.5389 2.4508 0.5901 -1.6998 0.8739 0.7517 7.0698 2.4295 3.9794

15*8的均匀分布随机阵([-1,1]之间):

>>r=2*rand(15,8)-1 r =

Columns 1 through 5

0.5844 -0.9077 0.4187 0.3982 0.2321 0.9190 -0.8057 0.5094 0.7818 -0.0534 0.3115 0.6469 -0.4479 0.9186 -0.2967 -0.9286 0.3897 0.3594 0.0944 0.6617 0.6983 -0.3658 0.3102 -0.7228 0.1705 0.8680 0.9004 -0.6748 -0.7014 0.0994

3

Matlab程序设计实验报告

0.3575 -0.9311 -0.7620 -0.4850 0.8344 0.5155 -0.1225 -0.0033 0.6814 -0.4283 0.4863 -0.2369 0.9195 -0.4914 0.5144 -0.2155 0.5310 -0.3192 0.6286 0.5075 0.3110 0.5904 0.1705 -0.5130 -0.2391 -0.6576 -0.6263 -0.5524 0.8585 0.1356 0.4121 -0.0205 0.5025 -0.3000 -0.8483 -0.9363 -0.1088 -0.4898 -0.6068 -0.8921 -0.4462 0.2926 0.0119 -0.4978 0.0616 Columns 6 through 8

0.5583 0.3784 0.5498 0.8680 0.4963 0.6346 -0.7402 -0.0989 0.7374 0.1376 -0.8324 -0.8311 -0.0612 -0.5420 -0.2004 -0.9762 0.8267 -0.4803 -0.3258 -0.6952 0.6001 -0.6756 0.6516 -0.1372 0.5886 0.0767 0.8213 -0.3776 0.9923 -0.6363 0.0571 -0.8436 -0.4724

-0.6687 -0.1146 -0.7089 0.2040 -0.7867 -0.7279 -0.4741 0.9238 0.7386 0.3082 -0.9907 0.1594

15*8的正态分布随机阵(均值为1,方差为4): >>r=2*randn(15,8)+1

r =

Columns 1 through 5

1.0670 2.0401 1.6151 -1.7234 2.6521 -1.6674 0.9599 -1.5142 1.9101 4.0540 3.2550 0.9305 -0.7309 -0.6974 1.9338 1.7004 -0.5963 0.6469 0.3302 0.5806 0.4019 3.0374 2.5828 2.1056 2.2504 1.0458 0.7336 -1.6640 3.0782 1.3665 0.4760 -0.4291 -3.6597 -1.2353 -1.0595 -2.5004 3.7028 -1.8982 3.5213 2.8984 0.4287 0.5505 1.6670 2.3203 1.6141 -0.6627 -0.1781 1.7827 0.8643 1.2703 -0.9584 0.4125 1.9034 0.6096 2.0305 -1.3128 -0.6959 0.7394 0.5648 1.5228 -0.0671 -1.2403 1.3674 0.3938 -0.8830 -3.0053 6.0520 0.0477 1.0461 0.6753 2.9285 4.3110 2.7240 1.1026 0.7079

4

Matlab程序设计实验报告

Columns 6 through 8

-0.0640 0.1107 -1.1334 4.3642 0.6881 2.8675 -0.7515 1.5521 1.7006 0.0324 0.4777 0.9420 -0.4240 1.8868 1.3649 -1.3484 1.7838 -2.1301 0.6155 -1.5014 0.8309 0.4519 -0.8959 4.2079 4.0601 -0.4822 1.1967 0.5020 -0.0156 1.0827 -1.1284 0.3588 -0.4683 4.2069 1.0249 0.9384 3.4694 -5.0584 1.4647 0.5407 0.0860 1.8528 -2.0123 3.4849 0.2544

2、a矩阵:

>> v1=[8 -7 2];

>> v2=[5 3];>> c=fliplr(diag(v1))+fliplr(diag(v2,-1)) c =

0 0 8 0 -7 5 2 3 0 b矩阵:

>> v1=[2 5 8]; 4 5 7 >> v2=[4 0 7];

>> c=diag(v1)+fliplr(diag(v2)) c =

2 0 4 0 5 0

7 0 8

3、>>a=5-round(100*rand(50,2))/10 a =

2.3000 1.0000 4.6000 -1.2000 -1.7000 3.5000 0.7000 1.2000 0.5000 3.4000 -1.1000 -2.6000 4.4000 -3.7000

5

Matlab程序设计实验报告

1.8000 1.5000 -2.7000 -1.9000 -2.0000 2.1000 3.7000 -0.3000 3.7000 -3.3000 4.1000 -1.0000 4.9000 1.6000 0.8000 2.0000 -1.6000 0.5000 -2.2000 -0.3000 3.9000 -1.3000 3.7000 3.7000 4.0000 3.6000 3.3000 3.0000 1.8000 1.8000 2.8000 2.5000 -3.9000 -2.0000 -0.6000 3.2000 2.9000 4.2000 -4.1000 -2.1000 -0.6000 1.9000 3.3000 -1.2000 -4.9000 3.3000 2.4000 1.0000 4.3000 -1.8000 1.0000 -4.8000

0.8000 1.4000 -0.6000 -2.4000 0.8000 0.7000 3.8000 4.8000 2.1000 1.8000 -1.5000 -4.6000 -4.4000 0.4000 2.6000 -2.6000 -2.6000 -2.4000 -2.4000 3.9000 -1.8000 0.4000 2.9000 4.0000 -3.2000 3.2000 3.4000 -1.7000 -3.9000 -0.2000 -2.0000 3.5000 -4.5000 -0.4000 6

Matlab程序设计实验报告

4、脚本:x=[-pi:pi/180:pi] y1=sin(x) y2=cos(x) 结果: x =

Columns 1 through 5

-3.1416 -3.1241 -3.1067 -3.0892 -3.0718

Columns 6 through 10

-3.0543 -3.0369 -3.0194 -3.0020 -2.9845??Columns 356 through 360

3.0543 3.0718 3.0892 3.1067 3.1241 Column 361 3.1416 y1 =

Columns 1 through 5

-0.0000 -0.0175 -0.0349 -0.0523 -0.0698 Columns 6 through 10???Columns 356 through 360 0.0872 0.0698 0.0523 0.0349 0.0175 Column 361

0.0000 y2 =

Columns 1 through 5

-1.0000 -0.9998 -0.9994 -0.9986 -0.9976 Columns 6 through 10

-0.9962 -0.9945 -0.9925 -0.9903 -0.9877??Columns 356 through 360 -0.9962 -0.9976 -0.9986 -0.9994 -0.9998 Column 361 -1.0000

5、A=rand(10,10) b=A>0.6 [i,j,v]=find(b) c=sum(v) A =

Columns 1 through 5

0.6981 0.1904 0.4820 0.8244 0.5944 0.6665 0.3689 0.1206 0.9827 0.0225 0.1781 0.4607 0.5895 0.7302 0.4253 0.1280 0.9816 0.2262 0.3439 0.3127 0.9991 0.1564 0.3846 0.5841 0.1615 0.1711 0.8555 0.5830 0.1078 0.1788 0.0326 0.6448 0.2518 0.9063 0.4229 0.5612 0.3763 0.2904 0.8797 0.0942 0.8819 0.1909 0.6171 0.8178 0.5985 0.6692 0.4283 0.2653 0.2607 0.4709

7

Matlab程序设计实验报告

Columns 6 through 10 0.6959 0.7184 0.1537 0.2407 0.3445 0.6999 0.9686 0.2810 0.6761 0.7805 0.6385 0.5313 0.4401 0.2891 0.6753

0.0336

0.3251

0.5271

0.6718

0.0067

0.0688 0.1056 0.4574 0.6951 0.6022 0.3196 0.6110 0.8754 0.0680 0.3868 0.5309 0.7788 0.5181 0.2548 0.9160 0.6544 0.4235 0.9436 0.2240 0.0012 0.4076 0.0908 0.6377 0.6678 0.4624 0.8200 0.2665 0.9577 0.8444 0.4243 b =

Columns 1 through 9

1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 1 0 1 0 1 1 0 1 1 0 0 0 1 c = 37

6、A=randn(10,10) b=-0.5

Columns 1 through 5

-0.1132 -0.6264 -0.5933 -0.9870 0.3277 1.6360 0.2495 0.4013 0.7596 -0.2383 -0.4251 -0.9930 0.9421 -0.6572 0.2296 0.5894 0.9750 0.3005 -0.6039 0.4400 -0.0628 -0.6407 -0.3731 0.1769 -0.6169 -2.0220 1.8089 0.8155 -0.3075 0.2748 -0.9821 -1.0799 0.7989 -0.1318 0.6011 0.6125 0.1992 0.1202 0.5954 0.0923 -0.0549 -1.5210 0.5712 1.0468 1.7298 -1.1187 -0.7236 0.4128 -0.1980 -0.6086 Columns 6 through 10

-0.7371 0.1017 0.3893 2.2272 -1.0322 -1.7499 2.7873 0.7512 -0.0692 1.3312 0.9105 -1.1667 1.7783 -0.5073 -0.4189

8

0 1 0 1 1 0 0 0 Matlab程序设计实验报告

0.8671 -1.8543 1.2231 0.2358 -0.1403 -0.0799 -1.1407 -1.2833 0.2458 0.8998 0.8985 -1.0933 -2.3290 0.0700 -0.3001 0.1837 -0.4336 0.9019 -0.6086 1.0294 0.2908 -0.1685 -1.8356 -1.2226 -0.3451 0.1129 -0.2185 0.0668 0.3165 1.0128 0.4400 0.5413 0.0355 -1.3429 0.6293 b =

Columns 1 through 9

0 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 1 0 0 0 Column 10 1 0 0 0

0

0 0 0 0 0 c =

29

7、a=[0.53 0.97 1.05 1.34 0.78 2.20 0.67] b=[0.34 0.67 0.45 0.89 0.12 0.67 0.24] if and(a<1,b<=0.5)

disp('a<1 and b<=0.5') elseif and(a<1,b>0.5) disp('a<1 and b>0.5' ) elseif and(a>=1,b<=0.5) disp('a>=1 and b<0.5') elseif and(a>=1,b>0.5) disp('a>=1 and b>0.5') else

disp('error')

9

0 0 1 0 0 0 1 1 0 1 Matlab程序设计实验报告

end

a =

0.5300 0.9700 1.0500 1.3400 0.7800 2.2000 0.6700 b =

0.3400 0.6700 0.4500 0.8900 0.1200 0.6700 0.2400 error

8、A=[0.53 0.97 1.05;1.23 0.67 1.56;0.34 1.98 0.36]; b=A>1; c=A.*b;

[i,j,v]=find(c) v = 1.2300 1.9800

1.0500 1.5600

9、A=rand(100,3)+99.1 b=A>100; c=A.*b; [i,j,B]=find(c) A =

100.0879 99.7312 99.8829 99.2704 99.4551 99.7938

99.3578 100.0970 99.1098??

99.5440 99.2257 99.6882 99.1600 99.4089 99.4662 99.9667 99.8261 99.9068 B =

100.0879 100.0828

100.0569??

100.0870

100.0386 100.0419

10、A=[1 2 0 3 0;0 0 0 0 0;1 8 0 5 0;3 4 0 5 0;6 4 0 2 0]

b=any(A)

[i,j,v]=find(1-b) A(:,j)=[] B=A'

c=any(B)

[i,j,v]=find(1-c) B(:,j)=[]

10

Matlab程序设计实验报告

A=B'

A =

1 2 0 3 0 0 0 0 0 0 1 8 0 5 0 3 4 0 5 0 6 4 0 2 0 A =

1 2 3 1 8 5 3 4 5 6 4 2 11

Matlab程序设计实验报告

实验 二 : matlab绘图(1)

一、实验目的:

1. 熟练掌握MATLAB绘制基本函数图像。 2. 掌握对曲线加上标题、轴标记和曲线说明。 3. 掌握多条曲线的绘制方法。 4. 理解axis的使用方法。

二、实验内容:

1、 常用的三角函数的绘制,如正弦函数,余弦函数,正切函数,余切函数。

2、 画出对数和指数函数的曲线,并分别加上标题、轴标记和曲线说明(这里可采用多种方

法来标注曲线)。 3、 将图形窗口分成两格,分别绘制正割和余割函数,并加上适当的标注。 4、 设有函数y?ex?5?x3,在半对数坐标系中绘制曲线(x?[1,10])。 5、 绘制出多峰函数peaks和三角函数的多条曲线。

6、 将图形窗口分成两个窗格,并分别绘制出以下函数在[-3,3]区间上的曲线:

y1?2x?5 y2?x?3x?1

2

三、实验结果:

1、程序: x=0:pi/50:2*pi

k=[1 26 51 76 101];

x(k)=[]; figure(1)

subplot(2,2,1)

plot(x,sin(x)),grid on subplot(2,2,2)

plot(x,cos(x)),grid on subplot(2,2,3)

plot(x,tan(x)),grid on subplot(2,2,4)

plot(x,cot(x)),grid on

12

Matlab程序设计实验报告

2、程序:x=0.01:.01:1; y1=log10(x) y2=exp(x) figure(1)

plot(x,y1,'k-',x,y2,'k--'), grid on legend('\\ity=log_{10}(x)','\\ity=e^x') title('y=log_{10}(x) and y=e^x') ylabel('y'),xlabel('x')

13

Matlab程序设计实验报告

3、程序:x=0:pi/40:4*pi figure(1) subplot(2,1,1)

plot(x,sec(x)),grid on title('sec(x)')

ylabel('y'),xlabel('x') subplot(2,1,2)

plot(x,csc(x)),grid on title('csc(x)')

ylabel('y'),xlabel('x') 结果:

14

Matlab程序设计实验报告

4、程序:x=(1:.1:10) y=exp(x+5)+x.^3 semilogx(x,y,'k-') title('y=e^(x+5)+x.^3') ylabel('y'),xlabel('x') 结果:

15

Matlab程序设计实验报告

z=[];

for i=1:n

if s(i)~=' ' num=num+1; end if s(i)==' ' k=k+1; z(k)=i; end end

s(z)=[]; str=s; dis(s)

结果:>> [a b]=schar(s) rtytyiu a =

7 b =

rtytyiu

3.程序:function c=ling(A) c=0;

for j=1:2006 s=num2str(A(j)); n=length(s); for i=1:n if s(i)=='0' c=c+1; end end

end

结果:>> A=[1:2006]; >> c=ling(A) c =

504 >>

>>

4.(程序) function

[x1,x2]=qiujie(a,b,c) if b^2-4*a*c<0 x1=('#');

x2=('#');

disp('??·?3ì?T?a'); elseif b^2-4*a*c==0 x1=(-b)/(2*a); x2=(-b)/(2*a);

disp('??·?3ìóDá????àí??a'); elseif b^2-4*a*c>0

x1=(-b+sqrt(b^2-4*a*c))/2*a;

x2=(-b-sqrt(b^2-4*a*c))/2*a;

disp('??·?3ìóDá???2?í??a'); end

end

结果:>> [x1,x2]=qiujie(1,-2,1) 该方程有两个相同解

x1 = 1

x2 = 1

>> [x1,x2]=qiujie(2,3,1) 该方程有两个不同解

x1 = -2

x2 =

-4

>> [x1,x2]=qiujie(2,1,1)

26

Matlab程序设计实验报告

该方程无解

x1 = # x2 = #

5. function y=hansu(x) if x >=-3 & x< -1 y=(-x^2-4*x-3)/2; elseif x >=-1 & x<1 y=-x^2+1;

elseif x >= 1 & x <= 3 y=(-x^2+4*x-3)/2; end

figure(1)

plot(x,y,'r-'),grid on end

结果:>> y=hansu(2) y = 0.5000 画图:

(5.调用函数) function y= hansu(x)

27

n=length(x)

for i=1:n

if x(i)>=-3 && x(i)< -1

y(i)=(-x(i)^2-4*x(i)-3)/2; elseif x(i)>=-1 && x(i)<1 y(i)=-x(i)^2+1;

elseif x(i)>=1 && x(i)<=3 y(i)=(-x(i)^2+4*x(i)-3)/2; end end 主函数:

x=[-3:0.01:3]; y=hansu(x); plot(x,y)

结果:

Matlab程序设计实验报告

实验 五: matlab程序设计(2)

一、实验目的:

本章讨论在MATLAB下进行程序设计的有关问题,我们将对脚本文件和函数文件的编写,全局和局部变量的使用,流程控制结构,字符串计算,数值输入,程序调试等问题进行阐述。

二、实验内容:

6.利用menu函数输入选择参数ch。当ch=1时,产生[-10,10]之间均匀分布的随机数;当 ch=2时,产生[-5,5]之间均匀分布的随机;当ch=3时,产生[-1,1]之间均匀分布的随机数;当ch =4时,产生均值为0,方差为1的正态分布随机数。要求使用switch函数。

7.编写程序设计良好的用户界面,完成输入全班学生某学期6门课程(任意指定)的成绩,并按学分 2、3 、2 、4 、2.5 、1 分别进行加权平均,计算出每个学生的加权平均(即

x?wx?wii?11nin,xi为课程成绩,wi为相应的学分,w??wi?1i)。

8.企业发放的奖金按个人完成的利润(I)提成。分段提成比例KI为

?10% I??10万元??5% 10?I??20万元即 ??2% 20?I??40万元??1% I?40万元如王某完成25万元利润时,个人可的得y=10*10%=10*5%*5*2%(万元),据此编写程序,求企业职工的奖金。

9.有一分数序列2/1,3/2,5/3,8/5,13/8,21/13….求前15项的和。

10.有n个人围成一圈,按序列编号,从第一个人开始报数,数到m 时该人退出,并且下一个从1重新开始报数,求出出圈人的顺序(n>m, n=20,m=7) 三、实验结果:

6. ch=menu('data selection',1,2,3,4) switch ch

case 1,r=10-20*rand(2,2); case 2,r=5-10*rand(2,2); case 3,r=-1-2*rand(2,2); case 4,r=randn(2,2); end r ch =

28

1 r =

-6.2945 7.4603 -8.1158 -8.2675 >> ch =

2

Matlab程序设计实验报告

r =

-1.3236 2.2150 4.0246 -0.4688 >> ch = 3 r =

-2.9150 -1.3152 -2.9298 -2.9412 >> ch = 4 r =

0.7254 0.7147 -0.0631 -0.2050

7. function y=mean(x) disp(x); n=length(x); s=0;

t=0;

a=[2 3 2 4 2.5 1]; for i=1:n

s=s+x(i)*a(i); t=t+a(i); end y=s/t;

结果显示:

>>x=[98 96 97 95 93] x =

98 96 97 95 93

>> y=mean(x)

98 96 97 95 93 y =

95.5926

8. function y=pre(x) if x<=10

y=x*0.1;

elseif x>10&&x<=20

y=(x-10)*0.05+10*0.01; elseif x>20&&x<40

y=(x-20)*0.02+10*0.05+10*0.01; elseif x>40

y=(x-40)*0.01+20*0.02+10*0.05+10*0.1; end

结果:>> y=pre(37) y =

0.9400

9、程序function y=allsum(n) n=input('please input n:\\n'); i=1; a(1)=1; a(2)=2; y(1)=0; for i=1:n

a(i+2)=a(i)+a(i+1); end

for i=1:n

h(i)=a(i+1)/a(i); end

29

Matlab程序设计实验报告

for i=1:15 10. 程序function a=xunhuan(n,m) y=y+h(i); end 结果: please input n: 18 ans =

24.5701

please input n: 55 ans =

89.2915 >>

结果:>> a=xunhuan(23,3) a =

3 6 9 12 15 13 20 4 16 2

b=1:n; k=0; m1=1; i=1;

while m1<=n if b(i)~=0 k=k+1; if k==m k=0; a(m1)=b(i) m1=m1+1 b(i)=0; end end

if i==n i=0; end i=i+1; end

21 1 5 10 14 19 17 11 22 8 30

23 7 18

Matlab程序设计实验报告

实验 六: matlab基本应用(1)

一、实验目的:

本次试验熟悉MATLAB中方便地进行线性方程的求解、矩阵求逆、LU分解、QR分解、矩阵求幂、矩阵指数函数、求特征值及奇异值的分解,这些都是线性代数中的重要内容

二、实验内容:

1、求下列矩阵的逆矩阵和行列式的值 ?1 9 8 ???1、2 7 5

????3 -2 7??2、求解下列线性代数方程 ?x1?2x2?3x3?11??2x1?2x2?5x3?12 ?3x?5x?x?3123?13、通过测量得到一组数据

t 1 2 3 4 5 6 7 8 9 10 y 4.842 4.362 3.754 3,368 3.169 3.083 3.034 3.016 3.012 3.005

?t?t分别采用y1(t)?c1?c2e和y2(t)?d1?d2te进行拟合,并画出拟合曲线进行比较。

4、设A=[11.59 12.81 15.66;15.2 4.18 13.61;10.59 7.59 9.22]

B=[16.00 4.41 -10.37 -21.61;0.88 -20.04 12.86 8.56;-1.43 10.71 18.81 -5.99;-12.48 24.35 -23.9 10.34]

分别求出这两个矩阵的LU和QR分解。

5、求解下列线性微分方程,并画出状态轨迹。 ?1?5x1?5x2?6x3?x??2 (1)?3x1?2x2?5x3?x?2x?x?4x?x?323?16、计算第4题中的A、B阵地特征值和特征向量。

31

Matlab程序设计实验报告

7、已知一组测量值

t 1 2 3 4 5 6 7 8 9 10 y 15.0 39.5 66.0 85.5 89.0 67.5 12.0 -86.4 -236.9 -448.4 分别采用二阶和三阶进行拟合,给出拟合结果曲线。 8、(1)p1(x)?x4?2x3?3x2?4x?2 (2)p2(x)?x4?7x3?5x2?31x?30 (3) p3(x)?x3?x2?25x?25 (4) p4(x)??2x5?3x4?x3?5x2?8x

9、分别计算第8题中各多项式在-1.5、2.1、和3.5上的值。

10、已知a(x)?2x2?3x?4,b(x)?4x2?2x?5,c(x)?3x4?2x2?5x?6,试计算

d1(x)?a(x)b(x),d2(x)?c(x)/a(x),d3(x)?c(x)/b(x)的值。

三、实验结果:

1. >> c=[1 9 8;7 2 5;3 -2 7]; >> det(c)

ans =

-442

>> inv(c) ans =

-0.0543 0.1787 -0.0656 0.0769 0.0385 -0.1154 0.0452 -0.0656 0.1380

>>

2.A=[1 2 3;2 2 5;3 5 1]'; y=[11 12 14]'; x=A\\y

结果显示:>> Untitled x =

-2.7333 4.0667

32

Matlab程序设计实验报告

1.8667

>>

3. 脚本:t=[1 2 3 4 5 6 7 8 9 10]';

y=[4.842 4.362 3.754 3.368 3.169 3.083 3.034 3.016 3.012 3.005]'; A1=[ones(size(t)) exp(-t)]; A2=[ones(size(t)) t.*exp(-t)]; C=A1\\y D=A2\\y

T=[0:.1:10]';

Y1=[ones(size(T)) exp(-T)]*C; Y2=[ones(size(T)) T.*exp(-T)]*D; figure(1)

subplot(1,2,1)

plot(T,Y1,'-',t,y,'o'),grid on subplot(1,2,2)

plot(T,Y2,'-',t,y,'o'),grid on 结果显示: C =

3.1621 5.1961 D =

3.0039 5.0046 C =

3.1621 5.1961 D =

3.0039 5.0046 >>

33

Matlab程序设计实验报告

4.脚本:A=[11.59 12.81 15.66;15.2 4.18 13.61;10.59 7.59 9.22]; B=[16.00 4.41 -10.37 -21.61;0.88 -20.04 12.86 8.56;-1.43 10.71 18.81 -5.99;-12.48 24.35 -23.9 10.34]; [LA UA]=lu(A) [LB UB]=lu(B) [QA RA]=qr(A) [QB RB]=qr(B)

结果: UA =

15.2000 4.1800 13.6100 0 9.6227 5.2824 0 0 -2.8301

LB =

1.0000 0 0 0 0.0550 -0.7299 -0.3234 1.0000 -0.0894 0.3996 1.0000 0 -0.7800 1.0000 0 0 UB =

16.0000 4.4100 -10.3700 -21.6100 0 27.7898 -31.9886 -6.5158 0 0 30.6651 -5.3178 0 0 0 3.2732 QA =

-0.5304 0.7367 -0.4195 -0.6956 -0.6610 -0.2814 -0.4846 0.1426 0.8630 RA =

-21.8521 -13.3800 -22.2409 0 7.7558 3.8540 0 0 -2.4424 QB =

-0.7858 0.4746 0.1986 0.3433 -0.0432 -0.6293 -0.0082 0.7759 0.0702 0.3164 -0.9121 0.2509 0.6129 0.5278 0.3585 0.4660

34

Matlab程序设计实验报告

RB =

-20.3610 13.0779 -5.7350 22.5286 0 30.9458 -19.6781 -12.0806 0 0 -27.8895 4.8097 0 0 0 2.5397 >>

5.函数function dy=diffe(t,y)

dy=[5*y(1)-5*y(2)-6*y(3);3*y(1)-2*y(2)+5*y(3);2*y(1)-y(2)-4*y(3)];

脚本:X0=[1;-4;5];

tspan=[0,100];

[T,X]=ode45('diffe',tspan,X0);

figure(1)

subplot(3,1,1),plot(T,X(:,1),'r'),title('x_{1}'),grid on subplot(3,1,2),plot(T,X(:,2),'r'),title('x_{2}'),grid on subplot(3,1,3),plot(T,X(:,3),'r'),title('x_{3}'),grid on figure(2)

plot3(X(:,1),X(:,2),X(:,3),'r'),title('?μí3oˉêy'),grid on 结果: 35

Matlab程序设计实验报告

6.程序:EA=eig(A) EB=eig(B) [V,D]=eig(A) [V,D]=eig(B)

结果:EA =

33.4357 -6.5578 -1.8879 EB =

-32.6289 1.7953 32.5039 23.4397 V =

-0.6727 -0.5684 -0.5345 -0.5694 0.8226 -0.3679

36

-0.4726 -0.0142 0.7609 D =

33.4357 0 0 0 -6.5578 0 0 0 -1.8879 V =

0.3770 -0.7873 0.7363 -0.8112 -0.6637 -0.2878 -0.0532 0.1579 0.2194 -0.0752 0.1674 0.5614

0.6077 -0.5401 -0.6535 0.0421 D =

-32.6289 0 0 0

0 1.7953 0

Matlab程序设计实验报告

0

0 0 32.5039 >> 0

0 0 0 23.4397

7.程序: t=[1 2 3 4 5 6 7 8 9 10];

y=[15.0 39.5 66.0 85.5 89.0 67.5 12.0 -86.4 -236.9 -448.4]; p1=polyfit(t,y,2); p2=polyfit(t,y,3); t2=1:.1:10;

y2=polyval(p1,t2); y3=polyval(p2,t2); figure(1)

subplot(1,2,1),plot(t,y,'o',t2,y2),grid on subplot(1,2,2),plot(t,y,'o',t2,y3),grid on 结果:

8.9程序:p1=[1 -2 -3 4 2]; p2=[1 -7 5 31 -30]; p3=[1 -1 -25 25]; p4=[-2 3 1 5 8 0]; r1=roots(p1) r2=roots(p2) r3=roots(p3)

37

Matlab程序设计实验报告

r4=roots(p4)

y11=polyval(p1,-1.5) y12=polyval(p1,2.1) y13=polyval(p1,3.5) y21=polyval(p2,-1.5) y22=polyval(p2,2.1) y23=polyval(p2,3.5)

结果:r1 =

2.4142 1.4142 -1.4142 -0.4142 r2 =

5.0000 -2.0000 3.0000 1.0000 r3 =

-5.0000 5.0000 1.0000 r4 =

0 2.4176 0.0148 + 1.3215i 0.0148 - 1.3215i -0.9473 >> y11 =

1.0625

y12 =

-1.9039

y13 =

43.5625

y21 =

-36.5625

y22 =

11.7711

y23 =

-10.3125 >>

38

Matlab程序设计实验报告

10.程序:a=[2 3 -4]; b=[4 -2 5]; c=[3 -2 5 6]; d1=conv(a,b)

[d21,d22]=deconv(c,a) [d31,d32]=deconv(c,b)

结果: d1 = d1 =

8 8 -12 23 -20

d21 =

1.5000 -3.2500

d22 =

0 0 20.7500

d31 =

0.7500 -0.1250 d32 =

0 0 1.0000 >>

-7.0000 6.6250 39

Matlab程序设计实验报告

实验 七: matlab基本应用(2)

一、实验目的:

利用字符串函数和matlab的基本命令对字符阵列进行处理

二、实验内容:

第10题已知a(x)?2x2?3x?4,b(x)?4x2?2x?5,c(x)?3x4?2x2?5x?6,试计算d1(x)?a(x)b(x),d2(x)?c(x)/a(x),d3(x)?c(x)/b(x)的值。 11、求第10题中d1(x),d2(x),d3(x)的导数。 12、对函数 y?10e?x

取x?{?5,?4,?3??,3,4,5}的值作为粗值,分别采用最邻近内插,线性内插、三次样条内插和三次曲线内插方法,对[-5,5]内的点进行内插,比较其结果。

13、题分别利用rand和randn函数产生50个随机数,求出这一组数的最大值、最小值、均值和方差。

14、某一过程中通过测量得到

t 0 0.2 0.4 0.6 0.8 1.0 2.0 5.0 y 1.0 1.51 1.88 2.13 2.29 2.40 2.60 -4.00 分别采用多项式和指数函数进行曲线拟合。 15、产生一个信号,

x=3sin(w1t)?10sin(w2??)?10randn(size(t))

其中,w1?2?*20,w2?2?*200,???/4 ,这一信号表示被噪声污染的信号,设计程序求其DFT,并绘图显示,说明DFT在信号检测中的应用。 16、设有三个信号: x1?sin(wt)?randn(size(t))x2?cos(wt)?randn(size(t)) x3?sin(wt)?randn(size(t))试计算x1与x2,x1与x3之间的相关系数,从中可以得到什么结论?如果信号不含正余弦信

40

Matlab程序设计实验报告

10.0000 10.0000 10.0000

Columns 52 through 68

10.0000 10.0000 10.0000 10.0000 3.6788 3.6788 3.6788 3.6788 3.6788 3.6788 3.6788 3.6788 3.6788 3.6788 1.3534 1.3534 1.3534

Columns 69 through 85

1.3534 1.3534 1.3534 1.3534 1.3534 1.3534 1.3534 0.4979 0.4979 0.4979 0.4979 0.4979 0.4979 0.4979 0.4979 0.4979 0.4979

Columns 86 through 101

0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.1832 0.0674 0.0674 0.0674 0.0674 0.0674 0.0674

y2 =

Columns 1 through 17

0.0674 0.0790 0.0905 0.1021 0.1137 0.1253 0.1368 0.1484 0.1600 0.1716 0.1832 0.2146 0.2461 0.2776 0.3090 0.3405 0.3720

Columns 18 through 34

0.4035 0.4349 0.4664 0.4979 0.5834 0.6690 0.7545 0.8401 0.9256 1.0112 1.0967 1.1823 1.2678 1.3534 1.5859 1.8184 2.0510

Columns 35 through 51

2.2835 2.5161 2.7486 2.9812 3.2137 3.4463 3.6788 4.3109 4.9430 5.5752 6.2073 6.8394 7.4715 8.1036 8.7358 9.3679 10.0000

Columns 52 through 68

9.3679 8.7358 8.1036 7.4715 6.8394 6.2073 5.5752

46

Matlab程序设计实验报告

4.9430 4.3109 3.6788 3.4463 3.2137 2.9812 2.7486 2.5161 2.2835 2.0510

Columns 69 through 85

1.8184 1.5859 1.3534 1.2678 1.1823 1.0967 1.0112 0.9256 0.8401 0.7545 0.6690 0.5834 0.4979 0.4664 0.4349 0.4035 0.3720

Columns 86 through 101

0.3405 0.3090 0.2776 0.2461 0.2146 0.1832 0.1716 0.1600 0.1484 0.1368 0.1253 0.1137 0.1021 0.0905 0.0790 0.0674

y3 =

Columns 1 through 17

0.0674 0.0947 0.1162 0.1328 0.1453 0.1545 0.1615 0.1670 0.1718 0.1769 0.1832 0.1914 0.2025 0.2173 0.2367 0.2615 0.2927

Columns 18 through 34

0.3310 0.3774 0.4328 0.4979 0.5731 0.6567 0.7464 0.8399 0.9350 1.0293 1.1205 1.2065 1.2849 1.3534 1.4124 1.4731 1.5493

Columns 35 through 51

1.6548 1.8036 2.0093 2.2858 2.6471 3.1068 3.6788 4.3684 5.1462 5.9744 6.8151 7.6304 8.3824 9.0333 9.5451 9.8800 10.0000

Columns 52 through 68

9.8800 9.5451 9.0333 8.3824 7.6304 6.8151 5.9744 5.1462 4.3684 3.6788 3.1068 2.6471 2.2858 2.0093 1.8036 1.6548 1.5493

Columns 69 through 85

47

Matlab程序设计实验报告

1.4731 1.4124 1.3534 1.2849 1.2065 1.1205 1.0293 0.9350 0.8399 0.7464 0.6567 0.5731 0.4979 0.4328 0.3774 0.3310 0.2927

Columns 86 through 101

0.2615 0.2367 0.2173 0.2025 0.1914 0.1832 0.1769 0.1718 0.1670 0.1615 0.1545 0.1453 0.1328 0.1162 0.0947 0.0674

>>

13、脚本:

x1=rand(1,50) x2=randn(1,50) zuida1=max(x1) zuida2=max(x2) zuixiao1=min(x1) zuixiao2=max(x2) junzhi1=mean(x1) junzhi2=mean(x2) fangcha1=std(x1).^2 fangcha2=std(x2).^2

48

Matlab程序设计实验报告

结果:

x1 =

Columns 1 through 5

0.0579 0.3529 0.8132 0.0099 0.1389

Columns 6 through 10

0.2028 0.1987

Columns 11 through 15

0.0153 0.7468

Columns 16 through 20

0.4186 0.8462

Columns 21 through 25

0.8381 0.0196

Columns 26 through 30

0.5028 0.7095

Columns 31 through 35

0.1934 0.6822

Columns 36 through 40

0.6979 0.3784

Columns 41 through 45

0.4966 0.8998

Columns 46 through 50

0.6602 0.3420

0.6038 0.2722 0.1988 0.4451 0.9318 0.4660 0.5252 0.2026 0.6721 0.6813 0.3795 0.8318 0.4289 0.3046 0.1897 0.3028 0.5417 0.1509 0.8600 0.8537 0.5936 0.8216 0.6449 0.8180 0.2897 0.3412 0.5341 49

Matlab程序设计实验报告

x2 =

Columns 1 through 5

-0.4326 -1.6656 0.1253 0.2877 -1.1465

Columns 6 through 10

1.1909 1.1892 -0.0376 0.3273 0.1746

Columns 11 through 15

-0.1867 0.7258 -0.5883

Columns 16 through 20

0.1139 1.0668 0.0593

Columns 21 through 25

0.2944 -1.3362 0.7143

Columns 26 through 30

0.8580 1.2540 -1.5937

Columns 31 through 35

-0.3999 0.6900 0.8156

Columns 36 through 40

0.6686 1.1908 -1.2025

Columns 41 through 45

-1.6041 0.2573 -1.0565

Columns 46 through 50

0.5287 0.2193 -0.9219

zuida1 =

2.1832 -0.1364 -0.0956 -0.8323 1.6236 -0.6918 -1.4410 0.5711 0.7119 1.2902 -0.0198 -0.1567 1.4151 -0.8051 -2.1707 -0.0592 50

本文来源:https://www.bwwdw.com/article/ppax.html

Top