MATLAB综合练习1
Matlab与数学建模综合练习(1)

《Matlab与数学建模》综合练习1.按顺序进行如下的操作:(1)产生一个5阶魔术方阵A;并计算A'与A-1(即inv(A));>> A=magic(5)A =17 24 1 8 1523 5 7 14 164 6 13 20 2210 12 19 21 311 18 25 2 9 >> B=A'B =17 23 4 10 1124 5 6 12 181 7 13 19 258 14 20 21 215 16 22 3 9 >> inv(A)ans =-77/15600 133/2600 -23/650 3/2600 53/15600 89/2063 -97/2600 -3/650 33/2600 23/15600 -59/1950 1/325 1/325 1/325 71/1950 73/15600 -17/2600 7/650 113/2600 -577/15600 43/15600 1/200 27/650 -9/200 98/8837 (2)求A的特征值;>> eig(A)ans =65-2383/112-3846/2932383/1123846/293(3)计算A 的各列的总和与平均值; (4)计算A 的各行的总和与平均值;(5)若b=[1 2 3 4 5] ',求方程组 Ax=b 的解; (6)验证你的结论的正确性.2.产生行向量S =[1.0, 1.2, 1.4, …, 20],并计算S * S' 与 S' * S ,你有何“发现”?3.设A=⎪⎪⎭⎫ ⎝⎛4321;B=⎪⎪⎭⎫⎝⎛5055;求C=A * B – B * A ,你有何“发现”?4.若设矩阵A=⎪⎪⎭⎫⎝⎛4321;B=⎪⎪⎭⎫⎝⎛5005;求C=A * B – B * A ,你又有何“发现”? 5.如何建立如下的矩阵(命令方式和程序方式)?(1)1010200400020040002004⨯⎪⎪⎪⎪⎪⎭⎫⎝⎛; (2)1010010101001010100⨯⎛⎫⎪ ⎪⎪ ⎪ ⎪⎝⎭;>> a=ones(10,1)a =1 1 1 1 1 1 1 1 1 1>> A=0*a A =0 0 0 0 0 0 0>> b=diag(A)b =Columns 1 through 70 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 0Columns 8 through 100 0 00 0 00 0 00 0 00 0 00 0 00 0 00 0 00 0 00 0 0>> c=ones(10)c =Columns 1 through 71 1 1 1 1 1 11 1 1 1 1 1 11 1 1 1 1 1 11 1 1 1 1 1 11 1 1 1 1 1 11 1 1 1 1 1 11 1 1 1 1 1 11 1 1 1 1 1 11 1 1 1 1 1 11 1 1 1 1 1 1Columns 8 through 101 1 11 1 11 1 11 1 11 1 11 1 11 1 11 1 11 1 11 1 1>> C=10*cC =Columns 1 through 710 10 10 10 10 10 1010 10 10 10 10 10 1010 10 10 10 10 10 1010 10 10 10 10 10 1010 10 10 10 10 10 1010 10 10 10 10 10 1010 10 10 10 10 10 1010 10 10 10 10 10 1010 10 10 10 10 10 1010 10 10 10 10 10 10Columns 8 through 1010 10 1010 10 1010 10 1010 10 1010 10 1010 10 1010 10 1010 10 1010 10 1010 10 10>> m=triu(C,1)m =Columns 1 through 70 10 10 10 10 10 100 0 10 10 10 10 100 0 0 10 10 10 100 0 0 0 10 10 100 0 0 0 0 10 100 0 0 0 0 0 100 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 0Columns 8 through 1010 10 1010 10 1010 10 1010 10 1010 10 1010 10 1010 10 100 10 100 0 100 0 0>> n=tril(C,-1)n =Columns 1 through 70 0 0 0 0 0 010 0 0 0 0 0 010 10 0 0 0 0 010 10 10 0 0 0 00 010 10 10 10 10 0 010 10 10 10 10 10 010 10 10 10 10 10 1010 10 10 10 10 10 1010 10 10 10 10 10 10Columns 8 through 100 0 00 0 00 0 00 0 00 0 00 0 00 0 00 0 010 0 010 10 0>> K=m+n+bK =Columns 1 through 70 10 10 10 10 10 1010 0 10 10 10 10 1010 10 0 10 10 10 1010 10 10 0 10 10 1010 10 10 10 0 10 1010 10 10 10 10 0 1010 010 10 10 10 10 10 1010 10 10 10 10 10 1010 10 10 10 10 10 10Columns 8 through 1010 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 0 10 10 10 0 10 10 10 0(3)1010200411120041112004⨯⎪⎪⎪⎪⎪⎭⎫⎝⎛;>> c=ones(10,1)c =1 1 1 1 1 1 1 1 1 1>> C=1024*c C =1024102410241024102410241024102410241024>> F=diag(C)F =Columns 1 through 61024 0 0 0 0 00 1024 0 0 0 00 0 1024 0 0 00 0 0 1024 0 00 0 0 0 1024 00 0 0 0 0 10240 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0Columns 7 through 100 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 01024 0 0 00 1024 0 00 0 1024 00 0 0 1024>> a=ones(10)a =Columns 1 through 61 1 1 1 1 11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 1Columns 7 through 101 1 1 11 1 1 11 1 1 11 1 1 11 1 1 11 1 1 11 1 1 11 1 1 11 1 1 11 1 1 1>> U=triu(a,1)U =Columns 1 through 60 1 1 1 1 10 0 1 1 1 10 0 0 1 1 10 0 0 0 1 10 0 0 0 0 10 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0Columns 7 through 101 1 1 11 1 1 11 1 1 11 1 1 11 1 1 11 1 1 10 1 1 10 0 1 10 0 0 10 0 0 0>> D=tril(A,-1)D =Columns 1 through 60 0 0 0 0 01 0 0 0 0 01 1 0 0 0 01 1 1 0 0 01 1 1 1 0 01 1 1 1 1 01 1 1 1 1 11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 1Columns 7 through 100 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 00 0 0 01 0 0 01 1 0 01 1 1 0>> Q=D+U+FQ =Columns 1 through 61024 1 1 1 1 11 1024 1 1 1 11 1 1024 1 1 11 1 1 1024 1 11 1 1 1 1024 11 1 1 1 1 10241 1 1 1 1 11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 1Columns 7 through 101 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1024 1 1 1 1 1024 1 1 1 1 1024 1 1 1 1 1024(4)1010101010101010101010⨯--⎛⎫⎪-- ⎪⎪ ⎪ ⎪--⎝⎭(5)1000120011100⎛⎫⎪⎪⎪⎪⎪⎝⎭a=10:10:100a =Columns 1 through 710 20 30 40 50 60 70Columns 8 through 1080 90 100>> A=diag(a)A =Columns 1 through 710 0 0 0 0 0 00 20 0 0 0 0 00 0 30 0 0 0 00 0 0 40 0 0 00 0 0 0 50 0 00 0 0 0 0 60 00 0 0 0 0 0 700 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 0Columns 8 through 100 0 00 0 00 0 00 0 00 0 00 0 00 0 080 0 00 90 00 0 100>> a=ones(10)a =Columns 1 through 71 1 1 1 1 1 11 1 1 1 1 1 11 1 1 1 1 1 11 1 1 1 1 1 11 1 1 1 1 1 11 1 1 1 1 1 11 1 1 1 1 1 11 1 1 1 1 1 11 1 1 1 1 1 11 1 1 1 1 1 1Columns 8 through 101 1 11 1 11 1 11 1 11 1 11 1 11 1 11 1 11 1 1>> D=tril(a,-1)D =Columns 1 through 70 0 0 0 00 01 0 0 0 00 01 1 0 0 00 01 1 1 0 00 01 1 1 1 00 01 1 1 1 10 01 1 1 1 1 1 01 1 1 1 1 1 11 1 1 1 1 1 11 1 1 1 1 1 1Columns 8 through 100 0 00 0 00 0 00 0 00 0 00 0 00 0 00 0 01 1 0>> W=A+DW =Columns 1 through 710 0 0 0 00 01 20 0 0 00 01 1 30 0 00 01 1 1 40 00 01 1 1 1 500 01 1 1 1 1 60 01 1 1 1 1 1 701 1 1 1 1 1 11 1 1 1 1 1 11 1 1 1 1 1 1Columns 8 through 100 0 00 0 00 0 00 0 00 0 00 0 00 0 080 0 01 90 01 1 100 (6)11123111113412111111220⎛⎫ ⎪⎪ ⎪ ⎪ ⎪⎪ ⎪⎪⎝⎭(7)20042000002004300000200440000020045000002004⎛⎫ ⎪ ⎪⎪ ⎪ ⎪ ⎪⎝⎭6.绘制下列曲线的图形(散点图与折线图):]2,1[,1323-∈+--=x x x x y7.绘制下列曲面的图形:2222yx z +=(提示:曲面由两部分构成)8.在同一个图形上作下列两个函数的图象:(1)]2,0[),(sin 2π∈=x x y ; (2)]2,0[),(cos 2π∈=x x y9.假如你有一组实测数据,例如:x=[53 56 60 67.5 75 90 110]; y=[109 120.5 130 141.1 157.5 180 185]; 求其回归直线,画回归直线图形并计算最小误差平方和. 10.假如你有一组实测数据,例如:x=[75 86 95 108 112 116 135 151 155 160 163 167 171 178 185]; y=[10 12 15 17 20 22 35 41 48 50 51 54 59 66 75]; 求其回归直线,画回归直线图形并计算最小误差平方和.11.随机产生500个0到100的整数FS 作为学生的考试分数.(1) 画出FS 的简单直方图;(2) 画出每个分数段(0~10、10~20、…,90~100)的统计频数直方图; 12.求下列各结果:(1)用Matlab 因式分解:1001x-.(2)用Matlab 求极限:xx L xx e-+=→10)1(lim.(3)用Matlab 求积分:⎰+∞2sin x x d .(4)用Matlab 求幂级数:∑∞=+---1212114)1(n n n n x 的和函数(化简结果).13.非线性回归尝试说明:用线性回归方法将得到:x y 5961.00089.11+-=,但当18=x 时,2794.0-=y ,这是非常荒唐的结果!显然,一个基本要求是当0=x 时0=y .试尝试使用非线性回归模型: bax y =.请尝试以下的命令:ezplot3('sin(t)', ' cos(t)', 't', [0,6*pi]) ezcontour('x*exp(-x^2 - y^2)') ezcontourf('x*exp(-x^2 - y^2)')ezmesh('(s-sin(s))*cos(t)','(1-cos(s))*sin(t)','s',[-2*pi,2*pi]) ezmeshc('(s-sin(s))*cos(t)','(1-cos(s))*sin(t)','s',[-2*pi,2*pi]) ezsurf('x*exp(-x^2 - y^2)') ezsurfc('x*exp(-x^2 - y^2)')。
数学实验matlab练习1

《数学实验》第一讲实验习题1.执行下列指令,观察其运算结果,理解其意义:(1)[1 2;3 4]+10-2ians =9 1011 12(2)[1 2;3 4].*[0.1 0.2;0.3 0.4]ans =0.1000 0.40000.9000 1.6000(3)[1 2;3 4].\[20 10;9 2]ans =20.0000 5.00003.0000 0.5000(4)[1 2;3 4].^2ans =1 49 16(5)exp([1 2;3 4])ans =2.7183 7.389120.0855 54.5982(6)log([1 10 100])ans =0 2.3026 4.6052(7)prod([1 2;3 4])ans =3 8(8)[a,b]=min([10 20;30 40])a =10 20b =1 1(9)abs([1 2;3 4]-pi)ans =2.1416 1.14160.1416 0.8584(10) [1 2;3 4]>=[4 3;2 1]ans =0 01 1(11) find([10 20;30 40]>=[40 30;20 10])ans =24(12) [a,b]=find([10 20;30 40]>=[40 30;20 10])a =22b =12(13) all([1 2;3 4]>1)ans =0 1(14) linspace(3,4,5)ans =3.0000 3.2500 3.5000 3.7500(15) A=[1 2;3 4];A(:,2)ans =242. 执行下列指令,观察其运算结果、变量类型和字节数,理解其意义:(1) clear;a=1,b=num2str(a),c=a>0,a= =b,a= =c,b= =cans =(2) clear;fun=’abs(x)’,x=-2,eval(fun),double(fun)ans =2ans =97 98 115 40 120 413. 本金K 以每年n 次,每次%p 的增值率(np 为每年增值额的百分比)增加,当增加到rK 时所花费的时间为(单位:年) 1001ln ln(.)T r n p += ln()ln(10.01)r T n p =+ 用MATLAB 表达式写出该公式并用下列数据计算:20512,.,r p n ===。
MATLAB复习题(答案仅供参考)1

MATLAB复习题(答案仅供参考)1⼀、填空题1. MATLAB命令窗⼝中可⽤clear 命令清除⼯作区中的变量;⽤clc 命令清除命令窗⼝中的内容。
2. MATLAB中的运算符包括数学运算符、矩阵运算符、数组运算符。
3 MATLAB的含义为矩阵运算。
4. MATLAB中的函数类型有嵌套函数、主函数、⼦函数、私有函数和匿名函数。
5. MATLAB中⽤系统预定义的特殊变量nargin 表⽰函数输⼊参数个数。
6. size命令的功能确定数组⼤⼩。
7. MATLAB中⽤linspace 符号定义单元数组。
8. MATLAB中⽤hold on 命令打开图形保持功能。
9 MATLAB中如果⼀个变量名为123,该变量名是否合法否(填是或否)。
10. MATLAB中⽤inv 函数完成矩阵的求逆运算,⽤det 函数求矩阵的⾏列式。
11.已知C={2+5i,’Hi’;1:4,[1 2]} 输⼊s=C(3) 即s=__'_Hi__'___.12.先输⼊P=struct(‘name’,’Jack‘,’num’,43) ,再输⼊s= 即s=___Jack___.13.当x=[ 1 2 3; 4 5 6] , y=[ 5 8; 5 8 ] 时,__不能__(能﹨不能)使⽤plot 命令绘图。
14.sym 或syms _能_______(能﹨不能)创建符号矩阵。
15.已知x=3:2:24,则x有__11_个元素。
结构的开始是“if”命令,结束是_end____命令。
17.已知x为⼀个向量,计算ln(x)的MATLAB命令是计算_log(x)___。
18.命令:>>subplot(3,3,x)中有__9_个⼦图。
19.已知s=‘显⽰“hey”’,则s的元素个数是___9__。
y=f()global WW=2y=f1(5)function y=f()global Wy=w+W创建以上函数⽂件,在命令窗⼝中运⾏“y=f”命令则显⽰__出错___。
matlab试题及答案

matlab试题及答案# MATLAB试题及答案一、选择题1. MATLAB的基本数据单位是:A. 矩阵B. 向量C. 标量D. 数组答案:A2. 下列哪个命令可以用来绘制函数图形?A. `plot`B. `graph`C. `draw`D. `chart`答案:A3. MATLAB中,以下哪个是正确的矩阵转置操作?A. `transpose(A)`B. `A'`C. `A^T`D. `flip(A)`答案:B二、简答题1. 简述MATLAB中矩阵的基本操作。
答案:在MATLAB中,矩阵是最基本的数据结构,可以进行加、减、乘、除等基本运算。
矩阵的创建可以使用方括号`[]`,例如`A = [1 2;3 4]`。
矩阵的转置使用单引号`'`,例如`A'`。
矩阵的求逆使用`inv`函数,例如`inv(A)`。
2. MATLAB中如何实现循环结构?答案:MATLAB中实现循环结构主要有两种方式:`for`循环和`while`循环。
`for`循环用于已知迭代次数的情况,例如:```matlabfor i = 1:5disp(i);end````while`循环用于迭代次数未知的情况,例如:```matlabi = 1;while i <= 5disp(i);i = i + 1;end```三、计算题1. 给定矩阵A和B,请计算它们的乘积C,并求C的行列式。
A = [1 2; 3 4]B = [5 6; 7 8]答案:首先计算矩阵乘积C:```matlabC = A * B;```然后计算C的行列式:```matlabdetC = det(C);```结果为:```matlabC = [19 22; 43 50]detC = -16```2. 编写一个MATLAB函数,计算并返回一个向量的范数。
答案:```matlabfunction norm_value = vector_norm(v)norm_value = norm(v);end```四、编程题1. 编写一个MATLAB脚本,实现以下功能:- 随机生成一个3x3的矩阵。
matlab习题(1)

1.输入20个数,求其中最大数和最小数。
要求分别用循环结构和调用MA TLAB的max函数、min函数来实现。
a=rand(1,20);max1=max(a) %用max函数求最大值min1=min(a) %用max函数求最大值%以下用循环方法求解:max2=a(1);min2=a(1);for i=2:20if a(i)>max2max2=a(i);endif a(i)<min2min2=a(i);endendmax2min2调用MATLAB的max函数、min函数来实现:>> a=rand(1,20)zuidazhi=max(a)zuixiaozhi=min(a)a =Columns 1 through 80.7513 0.2551 0.5060 0.6991 0.8909 0.9593 0.5472 0.1386 Columns 9 through 160.1493 0.2575 0.8407 0.2543 0.8143 0.2435 0.9293 0.3500 Columns 17 through 200.1966 0.2511 0.6160 0.4733zuidazhi =0.9593zuixiaozhi =0.13862. 求Fibonacci数列(1)大于4000的最小项。
(2)5000之内的项数。
(1)function t=fibonacc1f=[1,1];n=2;while 1f=[f,f(n-1)+f(n)];n=length(f);if f(n)>4000break;endendt=f(n);return(2)function n=fibonacc2f=[1,1];n=2;while 1f=[f,f(n-1)+f(n)];n=length(f);if f(n)>4000break;endendn=n-1;return3. 写出下列程序的输出结果:s=0;a=[12,13,14;15,16,17;18,19,20;21,22,23];for k=afor j=1:4if rem(k(j),2)~=0s=s+k(j);endendendSAns=1081、解方程组Ax =b ,分别用求逆解法与直接解法求其解。
matlab练习题

matlab练习题Matlab是一种高级的技术计算软件,被广泛应用于科学与工程领域。
通过编写Matlab代码,我们可以解决各种数学问题、进行数据分析和可视化、进行仿真等。
本文将提供一些针对初学者的Matlab练习题,帮助读者熟悉Matlab的基本语法和常用操作。
练习一:矩阵运算在Matlab中,矩阵运算是一项重要的操作。
请编写Matlab代码完成以下任务:1. 创建两个3×3的矩阵A和B,元素的值自行选择。
2. 计算矩阵A和B的和,并将结果存储在变量C中。
3. 计算矩阵A和B的乘积,并将结果存储在变量D中。
4. 计算矩阵A的转置,并将结果存储在变量E中。
提示:使用Matlab的矩阵运算符和内置函数可以简化代码编写过程。
练习二:函数编写与图形绘制Matlab是一个功能强大的数学软件,可以用来编写自定义的函数并进行图形绘制。
1. 编写一个Matlab函数,该函数可以计算任意输入整数n的阶乘,并将结果输出。
2. 调用该函数,计算并输出5的阶乘。
3. 使用Matlab绘制函数y=2x+1的图像,其中x的取值范围为-10到10。
提示:使用Matlab的plot函数可以实现图形的绘制,并可使用grid函数添加刻度线。
练习三:数据分析Matlab提供了丰富的数据分析工具和函数,可以用来处理和分析实验数据。
1. 编写一个Matlab脚本,实现对给定实验数据进行统计分析的功能。
2. 实验数据保存在文本文件data.txt中,每行包含一个数据点。
读取数据并将其存储在一个向量中。
3. 计算数据的均值、方差和标准差,并将结果输出。
4. 使用Matlab的直方图函数绘制数据的频率分布直方图。
提示:使用Matlab的readmatrix函数可以读取文本文件中的数据。
调用mean、var和std函数可以计算均值、方差和标准差。
利用histogram函数可以绘制直方图。
练习四:数值解与绘图Matlab具有强大的数值计算和绘图功能,可以用来求解方程和绘制函数图像。
Matlab试题库1

一、填空1、在MATLAB命令窗口中的“>>”标志为MATLAB的_______提示符,“│”标志为_______提示符。
2、MATLAB的工作空间中只有三个变量v1, v2, v3,写出把它们保存到文件my_data.mat中的指令_______;3、设x是一维数组,x的倒数第3个元素表示为;设y为二维数组,要删除y的第34行和48列,可使用命令; ;4、fix(-1.5)= , round(-1.5)= .5、x为0~4pi,步长为0.1pi的向量,使用命令_______创建。
6、A=[1,2,3;4,5,6]; A(4)=__________, A(3,2)=__________________7、输入矩阵A=[1 3 2;3 -5 7;5 6 9],使用全下标方式用_______取出元素“-5”,使用单下标方式用_______取出元素“-5”。
8、在Matlab中执行语句C=rem(25,4)的结果为。
9、Matlab的运算符分为算术运算符、关系运算符和。
10、在Matlab中圆周率π用来表示,非数值用来表示。
11、在Matlab中对数值2.3进行向∞方向取整的语句是。
12、在Matlab中命令可以在命令窗口中显示MATLAB函数或者命令的帮助信息。
13、在Matlab中__ 用于括住字符串。
14、Matlab通过数据类型把一组不同类型但同时又是在逻辑上相关的数据组成一个有机的整体,以便于管理和引用。
15、A=[1,2;3,1];B=[1,0;0,1];A~=B= 。
16、是Matlab的主要交互窗口,用于输入命令并显示(除图形以外)的执行结果。
17、在Matlab中引入矩阵除法的概念,有左除右除两种除法,若AX=B,则X= ,若XA=B,则X= 。
18、在Matlab语言中变量的命名应遵循如下规则:变量名必须以开头,大小写,变量名长度不超过位。
19、Matlab中Inf或inf表示、eps表示、NaN表示。
matlab习题及答案

matlab习题及答案《Matlab习题及答案:提升编程技能,解决实际问题》Matlab是一种强大的数值计算和数据分析工具,它被广泛应用于工程、科学和其他领域的计算和模拟。
为了帮助大家提升编程技能,解决实际问题,我们为大家准备了一些Matlab习题及答案,希望能够帮助大家更好地掌握Matlab的使用。
1. 习题一:编写一个Matlab程序,计算斐波那契数列的前20个数字,并将结果打印出来。
答案:下面是一个简单的Matlab程序,用于计算斐波那契数列的前20个数字。
```matlaba = 0;b = 1;fib = zeros(1, 20);fib(1) = a;fib(2) = b;for i = 3:20fib(i) = fib(i-1) + fib(i-2);enddisp(fib);```2. 习题二:编写一个Matlab程序,求解一个二次方程ax^2 + bx + c = 0的根。
答案:下面是一个简单的Matlab程序,用于求解二次方程的根。
```matlaba = 1;b = -3;c = 2;delta = b^2 - 4*a*c;if delta > 0x1 = (-b + sqrt(delta))/(2*a);x2 = (-b - sqrt(delta))/(2*a);disp(['The roots are ', num2str(x1), ' and ', num2str(x2)]);elseif delta == 0x = -b/(2*a);disp(['The root is ', num2str(x)]);elsedisp('The equation has no real roots');end```通过以上两个习题及答案的示例,我们可以看到Matlab的强大功能和灵活性。
通过练习这些习题,我们可以更好地掌握Matlab的基本语法和常用函数,从而在实际问题中更快更准确地解决数值计算和数据分析的挑战。