matlab习题_matlab1习题
matlab习题由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“matlab1习题”。
1.输入20个数,求其中最大数和最小数。要求分别用循环结构和调用MATLAB的max函数、min函数来实现。a=rand(1,20);
max1=max(a)%用max函数求最大值
min1=min(a)%用max函数求最大值
%以下用循环方法求解:
max2=a(1);min2=a(1);for i=2:20 if a(i)>max2 max2=a(i);end
if a(i)
end
max2 min2
调用MATLAB的max函数、min函数来实现: >> a=rand(1,20)zuidazhi=max(a)zuixiaozhi=min(a)
a =
Columns 1 through 8
0.7513
0.2551
0.5060
0.6991
Columns 9 through 16
0.1493
0.2575
0.8407
0.2543
Columns 17 through 20
0.1966
0.2511
0.6160
0.4733
zuidazhi =
0.9593
zuixiaozhi =
0.8909
0.9593 0.8143
0.2435 0.5472
0.1386 0.9293
0.3500
0.1386
2.求Fibonacci数列
(1)大于4000的最小项。
(2)5000之内的项数。(1)function t=fibonacc1 f=[1,1];n=2;while 1
f=[f,f(n-1)+f(n)];n=length(f);if f(n)>4000 break;end
end
t=f(n);return
(2)function n=fibonacc2 f=[1,1];n=2;while 1
f=[f,f(n-1)+f(n)];n=length(f);if f(n)>4000 break;end
end
n=n-1;return
3.写出下列程序的输出结果: s=0;
a=[12,13,14;15,16,17;18,19,20;21,22,23];
for k=a
for j=1:4
if rem(k(j),2)~=0
s=s+k(j);
end
end
end
21A0
S Ans=1081、解方程组Ax=b,分别用求逆解法与直接解法求其解。
121000121000,10b0 0 012100 00120A=[2-1 0 0 0;-1 2-1 0 0;0-1 2-1 0;0 0-1 2-1;0 0 0-1 2];b=[1;0;0;0;0];x=inv(A)*b2、编一个m程序,求N阶方阵A的行列式的值 function s=mydet(A)n=size(A);
if(n(1)~=n(2))
return;end
n=n(1);if(n==1)s=A;
return;end s=0;
for i=1:n
s=s-(-1)^i*A(1,i)*mydet(A(2:n,[1:i-1 i+1:n]));end
3.今有多项式P1(x)=x4-2x+1,P2(x)=x2+4x-0.5,要求先求得P(x)=P1(x)+P2(x),然后计算xi=0.2*i各点上的P(xi)(i=0,1,2,…,5)值。p1=[1.0 0.0 0.0-2.0 1.0];p2=[0.0 0.0 1.0 4.0-0.5];p1x=poly2sym(p1);p2x=poly2sym(p2);p=p1x+p2x
4.试编一个m程序,将一维数组x中的N个数按颠倒的次序重新存储。如N=5,原来x为:
x=[ 1
] 而经过颠倒处理后x中数据的次序应该为: x=[ 9
] x=[ 1 3 5 7 9 ]
xx=rot90(rot90(x))
1.在[0 2π]范围内绘制二维曲线图y=sin(x)*cos(5x)。x = 0:pi/10:2*pi;y = sin(x).*cos(5*x)plot(x,y)
2.在[0 2π]范围内绘制以Y轴为对数的二维曲线图。
y=|1000sin(4x)|+1 x=linspace(0,2*pi,100);y=abs(1000*sin(4*x))+1;semilogy(x,y)
3.把自己姓名中的各个拼音字母(小写)所对应的ASCII值转换为二进制序列,并用二进制脉冲绘图表示出来
mingzi='shaopengpeng';% b=dec2bin(int8(s))b=double(mingzi)c=dec2bin(b)c=c'
stem(str2num(c(:)))Matlab介绍
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB应用非常之广泛!
MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户直接进行下载就可以用。
优势特点:
1)高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来; 2)具有完备的图形处理功能,实现计算结果和编程的可视化;
3)友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握; 4)功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等),为用户提供了大量方便实用的处理工具。
习题
第三讲
1.输入20个数,求其中最大数和最小数。要求分别用循环结构和调用MATLAB的max函数、min函数来实现。
用循环结构的程序:
>> a=[1 3 5-1 20 23-8 39-3 7-4-11 34-31 12 13 33-43-50 45] c=a(1);d=a(1);for n=1:20;if a(n)>c b=a(n);c=a(n);else b=c;end;end;for n=1:20;if a(n)
5-1 20 23-8 39-3 7-4-11 34-31 12 13 33
Columns 18 through 20
-43-50 45 结果 b =
c =
调用MATLAB的max函数、min函数来实现:的程序
>> a=[1 3 5-1 20 23-8 39-3 7-4-11 34-31 12 13 33-43-50 45] b=max(a);d=min(a);b d 运行结果: a =
Columns 1 through 17
5-1 20 23-8 39-3 7-4-11 34-31 12 13 33
Columns 18 through 20
-43-50 45 结果 b =
d =
2.求Fibonacci数列
(1)大于4000的最小项。
(2)5000之内的项数。
3、写出下列程序的输出结果: s=0;
a=[12,13,14;15,16,17;18,19,20;21,22,23];
for k=a
for j=1:4
if rem(k(j),2)~=0
s=s+k(j);
end
end
end
s 运行结果:
s= 108
第四章习题
1、解方程组Ax=b,分别用求逆解法与直接解法求其解。
21000 121001A
01210b0 00121, 0 0001200
2、编一个m程序,求N阶方阵A的行列式的值。
3、今有多项式P1(x)=x4-2x+1,P2(x)=x2+4x-0.5,要求先求得P(x)=P1(x)+P2(x),然后计算xi=0.2*i各点上的P(xi)(i=0,1,2,…,5)值。
4.试编一个m程序,将一维数组x中的N个数按颠倒的次序重新存储。如N=5,原来x为: x=[ 1
] 而经过颠倒处理后x中数据的次序应该为: x=[ 9
]
第五章习题
1.在[0 2π]范围内绘制二维曲线图y=sin(x)*cos(5x)。
x=0:pi/100:2*pi;y=sin(x).*cos(5*x);plot(x,y)10.80.60.40.20-0.2-0.4-0.6-0.8-101234567
2.在[0 2π]范围内绘制以Y轴为对数的二维曲线图。
y=|1000sin(4x)|+1 x=(0:0.01:2*pi);
y=abs(1000*sin(4*x))+1;semilogy(x,y);
***002000012345673、把自己姓名中的各个拼音字母(小写)所对应的ASCII值转换为二进制序列,并用二进制脉冲绘图表示出来
a='shaopengpeng';b=dec2bin(a);stem(str2num(b(:)))
心得体会
Matlab是一个强大的数学工具,它的应用广泛,涉及到各个领域.它使用起来十分方便,不用麻烦去定义变量.它的绘图能力很强,甚至可以模拟出三维视图.矩阵是它应用的核心,许多工程繁琐的运算都需要靠矩阵来化简,这正是它的生命力所在.但是,他的函数很多,开始学时记的比较痛苦,我已经深深感觉到了.不过看多了也就熟了,感觉和学五笔差不多.它的语法简单,像我学过C语言的学起来还是蛮容易的.它的数组定义十分符合自然,是从1开始的,数组元素的调用也很接近数学的表达.此外,函数的名字也很符合英文规则,反正我用得很开心就是了.9
通过学习matlab,我又一次锻炼了自己的思维.它学起来得心应手也让我明白了学习一门语言(c语言)对学习其他语言的帮助指导作用.同时,它也加强了我理论联系实际的能力.这是一个专业课的基础工具,学好它是必要的