matlab实验四及其答案
MATLAB全部实验及答案
MATLAB全部实验及答案实验一、MATLAB基本操作实验内容及步骤4、有关向量、矩阵或数组的一些运算(1)设A=15;B=20;求C=A+B与c=a+b?(2)设A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B与A.*B?A*B就是线代里面的矩阵相乘 A.*B是对应位置的元素相乘(3)设a=10,b=20;求i=a/b=0.5与j=a\b=2?(4)设a=[1 -2 3;4 5 -4;5 -6 7]请设计出程序,分别找出小于0的矩阵元素及其位置(单下标、全下标的形式),并将其单下标转换成全下标。
clear,clca=[1 -2 3;4 5 -4;5 -6 7];[x,y]=find(a<0);c=[];for i=1:length(x)c(i,1)=a(x(i),y(i));c(i,2)=x(i);c(i,3)=y(i);c(i,4)=(y(i)-1)*size(a,2)+x(i);endc(5)在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何?如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何?前面那个是虚数矩阵,后面那个出错(6)请写出完成下列计算的指令:a=[1 2 3;3 4 2;5 2 3],求a^2=?,a.^2=?a^2= 22 16 1625 26 2326 24 28a.^2=1 4 99 16 425 4 9(7)有一段指令如下,请思考并说明运行结果及其原因clearX=[1 2;8 9;3 6];X( : ) 转化为列向量(8)使用三元组方法,创建下列稀疏矩阵2 0 8 00 0 0 10 4 0 06 0 0 0方法一:clear,clcdata=[2 8 1 4 6];ir=[1 1 2 3 4 ];jc=[1 3 4 2 1];s=sparse(ir,jc,data,4,4);full(s)方法二:不用三元组法clear,clca=zeros(4,4);a(1,[1,3])=[2,8];a(2,4)=1;a(3,2)=4;a(4,1)=6;a(9) 写出下列指令的运行结果>> A = [ 1 2 3 ]; B = [ 4 5 6 ];>> C = 3.^A>> D = A.^B5、 已知⎪⎭⎫⎝⎛+⋅=-334sin 234πt e y t 若需要计算t ∈[-1,1],取间隔为0.01,试计算出相对应的y 值。
MATLAB实验指导书(附答案)
MATLAB基础实验指导书漳州师范学院物电系2010年10月目录实验一MATLAB环境的熟悉与基本运算 (2)实验二MATLAB数值运算 (8)实验三MATLAB语言的程序设计 (12)实验四MATLAB的图形绘制 (16)实验五采用SIMULINK的系统仿真 (20)实验六MATLAB在电路中的应用 (25)实验七MATLAB在信号与系统中的应用 (27)实验八MATLAB在控制理论中的应用 (29)实验一 MATLAB环境的熟悉与基本运算一、实验目的:1.熟悉MATLAB开发环境2.掌握矩阵、变量、表达式的各种基本运算二、实验基本知识:1.熟悉MATLAB环境:MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器文件和搜索路径浏览器。
2.掌握MATLAB常用命令3.MATLAB变量与运算符变量命名规则如下:(1)变量名可以由英语字母、数字和下划线组成(2)变量名应以英文字母开头(3)长度不大于31个(4)区分大小写MATLAB中设置了一些特殊的变量与常量,列于下表。
MATLAB运算符,通过下面几个表来说明MATLAB的各种常用运算符表2 MATLAB算术运算符表3 MATLAB关系运算符表4 MATLAB逻辑运算符表5 MATLAB特殊运算4.MATLAB的一维、二维数组的寻访表6 子数组访问与赋值常用的相关指令格式5.MATLAB的基本运算表7 两种运算指令形式和实质内涵的异同表6.MATLAB的常用函数表8 标准数组生成函数表9 数组操作函数三、实验内容1、学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明,学习使用指令eye(其它不会用的指令,依照此方法类推)2、学习使用clc、clear,观察command window、command history和workspace等窗口的变化结果。
3、初步程序的编写练习,新建M-file,保存(自己设定文件名,例如exerc1、exerc2、exerc3……),学习使用MATLAB的基本运算符、数组寻访指令、标准数组生成函数和数组操作函数。
MATLAB)课后实验答案
实验一 MATLAB 运算基础1、 先求下列表达式得值,然后显示MATLAB 工作空间得使用情况并保存全部变量。
(1) 0122sin 851z e =+(2) 21ln(2z x =+,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦ (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e a z a a --+=++=--L (4) 2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t =0:0、5:2、5 解:4、 完成下列操作:(1) 求[100,999]之间能被21整除得数得个数。
(2) 建立一个字符串向量,删除其中得大写字母。
解:(1) 结果:(2)、 建立一个字符串向量 例如:ch='ABC123d4e56Fg9';则要求结果就是:实验二 MATLAB 矩阵分析与处理1、 设有分块矩阵33322322E R A O S ⨯⨯⨯⨯⎡⎤=⎢⎥⎣⎦,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵与对角阵,试通过数值计算验证22E R RS A OS +⎡⎤=⎢⎥⎣⎦。
解: M 文件如下;5、 下面就是一个线性方程组:1231112340.951110.673450.52111456x x x ⎡⎤⎢⎥⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎣⎦(1) 求方程得解。
(2) 将方程右边向量元素b 3改为0、53再求解,并比较b 3得变化与解得相对变化。
(3) 计算系数矩阵A 得条件数并分析结论。
解: M 文件如下:实验三 选择结构程序设计1、 求分段函数得值。
2226035605231x x x x y x x x x x x x ⎧+-<≠-⎪=-+≤<≠≠⎨⎪--⎩且且及其他用if 语句实现,分别输出x=-5、0,-3、0,1、0,2、0,2、5,3、0,5、0时得y 值。
MATLAB实验及答案详解
>> C3
C3 =
9 22 2
8 19 -6
36 88 3
>> D1
D1 =
2 -2 3
655
16 -10 3
>> D2
D2 =
0.5000 -2.0000 0.3333
0.6667 5.0000 0.2000
1.0000 -10.0000 3.0000
>> D3
D3 =
141
4 25 1
16 100 9
5.0000 - 5.0000i 6.0000 - 6.0000i
②求矩阵的逆矩阵
>> B=[1 2;3 4];
>> B1=inv(B) 运行后显示:
B1 = -2.0000 1.0000 1.5000 -0.5000
>> B2=B^(-1) 运行后显示: B2 =
-2.0000 1.0000 1.5000 -0.5000 ③关于矩阵求幂 >>A=[1 2;3 4]; B=[ 2 1;3 2]; >>A.^B 运行后显示: ans =
>>A=[1,2,3;4,5,6] 运行后显示: A= 123 456
在命令窗口输入:
>>b=A(1,2)
运行后显示:b =2
在命令窗口输入:
>>A(2,3)=-3
运行后显示:A =
123
4 5 -3
矩阵的操作
>>A=[1,2,3;4,5,6;7,8,9]
>>B=diag(A) %X 为矩阵时,V=diag(X,k)得到列向量 V,它取自 X 的第 K 个对角
matlab实验内容答案
m a t l a b实验内容答案(总16页) -本页仅作为预览文档封面,使用时请删除本页-实验报告说明:matlab 课程实验需撰写8个实验报告,每个实验报告内容写每次实验内容中标号呈黑体大号字显示的题目。
第一次实验内容:实验一 MATLAB 运算基础一、实验目的1.熟悉启动和退出MATLAB 的方法。
2.熟悉MATLAB 命令窗口的组成。
3.掌握建立矩阵的方法。
4.掌握MATLAB 各种表达式的书写规则以及常用函数的使用。
二、实验内容1.先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。
(1)22sin8511z e ︒=+ (2)12ln(2z x =,其中2120.455i +⎡⎤=⎢⎥-⎣⎦(3)0.30.33sin(0.3), 3.0, 2.9, 2.8,,2.8,2.9,3.02a ae e z a a --=+=--- 提示:利用冒号表达式生成a 向量,求各点的函数值时用点乘运算。
(4)2220141122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪--≤<⎩,其中t =0::提示:用逻辑表达式求分段函数值。
2.已知12344347873657A -⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦,131203327B -⎡⎤⎢⎥=⎢⎥⎢⎥-⎣⎦求下列表达式的值:(1) A+6=B 和A-B+I(其中I 为单位矩阵)。
(2) A*B 和A.*B 。
(3) A^3和A^.3 。
(4) A/B 和B\A 。
(5)[A ,B]和[A([1,3],;);B^2] 。
3.设有矩阵A 和B12345678910111213141516171819202122232425A ⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦, 30161769023497041311B ⎡⎤⎢⎥-⎢⎥⎢⎥=-⎢⎥⎢⎥⎢⎥⎣⎦(1) 求它们的乘积C 。
(2) 将矩阵C 的右下角3×2子矩阵赋给D(3) 查看MATLAB 工作空间使用情况。
MATLAB)课后实验答案
实验一 MATLAB 运算基础1. 先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。
(1) 0122sin851z e =+ (2) 221ln(1)2z x x =++,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦ (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e a z a a --+=++=-- (4) 2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t =0:0.5:2.5 解: M 文件:z1=2*sin(85*pi/180)/(1+exp(2))x=[2 1+2*i;-.45 5];z2=1/2*log(x+sqrt(1+x^2))a=-3.0:0.1:3.0;z3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2) t=0:0.5:2.5; z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3) .*(t.^2-2*t+1)运算结果:z1=2*sin(85*pi/180)/(1+exp(2))x=[2 1+2*i;-.45 5];z2=1/2*log(x+sqrt(1+x^2))a=-3.0:0.1:3.0;z3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2)t=0:0.5:2.5;z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3) .*(t.^2-2*t+1) z1 =0.2375z2 =0.7114 - 0.0253i 0.8968 + 0.3658i0.2139 + 0.9343i 1.1541 - 0.0044i2. 已知:1234413134787,2033657327A B --⎡⎤⎡⎤⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦求下列表达式的值:(1) A+6*B 和A-B+I (其中I 为单位矩阵)(2) A*B 和A.*B(3) A^3和A.^3(4) A/B 及B\A(5) [A,B]和[A([1,3],:);B^2]解: M 文件:A=[12 34 -4;34 7 87;3 65 7];B=[1 3 -1;2 0 3;3 -2 7]; A+6.*BA-B+eye(3)A*BA.*BA^3A.^3A/BB\A[A,B][A([1,3],:);B^2]运算结果:A=[12 34 -4;34 7 87;3 65 7];B=[1 3 -1;2 0 3;3 -2 7]; A+6.*BA-B+eye(3)A*BA.*BA^3A.^3A/BB\A[A,B][A([1,3],:);B^2]ans =18 52 -1046 7 10521 53 49ans =12 31 -332 8 840 67 1 ans =68 44 62309 -72 596154 -5 241 ans =12 102 468 0 2619 -130 49 ans =37226 233824 48604247370 149188 60076678688 454142 118820 ans =1728 39304 -6439304 343 65850327 274625 343 ans =16.4000 -13.6000 7.600035.8000 -76.2000 50.200067.0000 -134.0000 68.0000ans =109.4000 -131.2000 322.8000-53.0000 85.0000 -171.0000-61.6000 89.8000 -186.2000ans =12 34 -4 1 3 -134 7 87 2 0 33 65 7 3 -2 7 ans =12 34 -43 65 74 5 111 0 1920 -5 403. 设有矩阵A和B1234530166789101769,111213141502341617181920970212223242541311A B ⎡⎤⎡⎤⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥==-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦ (1) 求它们的乘积C 。
matlab实验指导答案详解(非常详细正确)
实验一MATLAB 工作环境熟悉及简单命令的执行一、实验目的:熟悉MATLAB 的工作环境,学会使用MATLAB 进行一些简单的运算。
二、实验内容:MATLAB 的启动和退出,熟悉MATLAB 的桌面(Desktop ),包括菜单(Menu )、工具条(Toolbar )、命令窗口(Command Window)、历史命令窗口、工作空间(Workspace)等;完成一些基本的矩阵操作;学习使用在线帮助系统。
三、实验步骤:1、启动MATLAB ,熟悉MATLAB 的桌面。
2、在命令窗口执行命令完成以下运算,观察workspace 的变化,记录运算结果。
(1)(365-52⨯2-70)÷3 >>(365-52*2-70)/3 ans = 63.6667(2)>>area=pi*2.5^2 area = 19.6350(3)已知x=3,y=4,在MATLAB 中求z :()232y x y x z -= >>x=3 >>y=4>>z = x ^2 * y ^3 / (x - y) ^2 z = 576(4)将下面的矩阵赋值给变量m1,在workspace 中察看m1在内存中占用的字节数。
m1=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡11514412679810115133216 执行以下命令>>m1 =[16 2 3 13 ; 5 11 10 8 ; 9 7 6 12 ; 4 14 15 1 ] >>m1( 2 , 3 ) ans = 10 >>m1( 11 ) ans = 6>>m1( : , 3 ) ans =3 10 6 15>>m1( 2 : 3 , 1 : 3 ) ans =5 11 10 9 7 6>>m1( 1 ,4 ) + m1( 2 ,3 ) + m1( 3 ,2 ) + m1( 4 ,1) ans = 34(5)执行命令>>help abs查看函数abs 的用法及用途,计算abs( 3 + 4i ) (6)执行命令>>x=0:0.1:6*pi; >>y=5*sin(x); >>plot(x,y)(6)运行MATLAB 的演示程序,>>demo ,以便对MATLAB 有一个总体了解。
MATLAB数学实验答案(全)
第一次练习教学要求:熟练掌握Matlab 软件的基本命令和操作,会作二维、三维几何图形,能够用Matlab 软件解决微积分、线性代数与解析几何中的计算问题。
补充命令vpa(x,n) 显示x 的n 位有效数字,教材102页fplot(‘f(x)’,[a,b]) 函数作图命令,画出f(x)在区间[a,b]上的图形 在下面的题目中m 为你的学号的后3位(1-9班)或4位(10班以上) 1.1 计算30sin limx mx mx x →-与3sin limx mx mxx →∞- syms xlimit((902*x-sin(902*x))/x^3) ans =366935404/3limit((902*x-sin(902*x))/x^3,inf)//inf 的意思 ans = 0 1.2 cos1000xmxy e =,求''y syms xdiff(exp(x)*cos(902*x/1000),2)//diff 及其后的2的意思 ans =(46599*cos((451*x)/500)*exp(x))/250000 - (451*sin((451*x)/500)*exp(x))/250 1.3 计算2211x y edxdy +⎰⎰dblquad(@(x,y) exp(x.^2+y.^2),0,1,0,1)//双重积分 ans = 2.13941.4 计算4224x dx m x +⎰ syms xint(x^4/(902^2+4*x^2))//不定积分 ans =(91733851*atan(x/451))/4 - (203401*x)/4 + x^3/12 1.5 (10)cos ,x y e mx y =求//高阶导数syms xdiff(exp(x)*cos(902*x),10) ans =-356485076957717053044344387763*cos(902*x)*exp(x)-3952323024277642494822005884*sin(902*x)*exp(x)1.6 0x =的泰勒展式(最高次幂为4).syms xtaylor(sqrt(902/1000+x),5,x)//泰勒展式 ans =-(9765625*451^(1/2)*500^(1/2)*x^4)/82743933602 +(15625*451^(1/2)*500^(1/2)*x^3)/91733851-(125*451^(1/2)*500^(1/2)*x^2)/406802 + (451^(1/2)*500^(1/2)*x)/902 +(451^(1/2)*500^(1/2))/500 1.7 Fibonacci 数列{}n x 的定义是121,1x x ==12,(3,4,)n n n x x x n --=+=用循环语句编程给出该数列的前20项(要求将结果用向量的形式给出)。
MATLAB相关的实验以及答案
y=zeros(size(x)); i=numel(x); for j=1:i if (x(j)>=0) y(j)=-3*x(j)^2+5; else y(j)=3*x(j)^2+5; end end x y
4. 编写一程序,求出 编写一程序,求出[100 1000]以内的全部素数。 以内的全部素数。 以内的全部素数 num=[ ]; i=1; for k1=100:1000 k2=fix(sqrt(k1)); sign=1; for k3=2:k2 if mod(k1,k3)==0 sign=0; break end end if sign==1 num(i)=k1; i=i+1; end end num
6. 建立函数count(x),其中x为一个班的学生成绩,统 建立函数 ,其中 为一个班的学生成绩, 为一个班的学生成绩 计该班学生成绩,其中优秀:成绩≥90,良好:80≤ 计该班学生成绩,其中优秀:成绩 ,良好: 成绩<90,中等:70≤成绩 成绩<80,及格:60≤成绩 成绩<70, 成绩 ,中等: 成绩 ,及格: 成绩 , 不及格:成绩<60,分别输出优秀、良好、中等、不 不及格:成绩 ,分别输出优秀、良好、中等、 及格的人数,要求有输入、输出提示语句。例如: 及格的人数,要求有输入、输出提示语句。例如: >> count 请输入该班学生成绩: %输出提示 请输入该班学生成绩: 输出提示 [34 67 98 89 78] %输入成绩 输入成绩 成绩优秀: %输出结果 成绩优秀:1 输出结果 成绩良好: 成绩良好:1 成绩中等: 成绩中等:1 成绩及格: 成绩及格:1 成绩不及格: 成绩不及格:1
2. 输入三角形的三条边,求三角形的面积。如果输入 输入三角形的三条边,求三角形的面积。 的三个数不能构成三角形,要求输出“ 的三个数不能构成三角形,要求输出“不能构成一个 三角形”这样的提示信息。 三角形”这样的提示信息。 提示: 提示: area = s(s −a)(s −b)(s −c) s = (a +b + c) / 2 a=input('a='); b=input('b='); c=input('c='); if (a+b>c)&(a+c>b)&(b+c>a) s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)) else fprintf(‘不能构成一个三角形 不能构成一个三角形\n’) 不能构成一个三角形 end
MATLAB作业4参考答案
MATLAB作业4参考答案MATLAB作业四参考答案2yt,,sin(103)1、用在(0,3)区间内生成一组较稀疏的数据,并用一维数据插值的方法对给出的数据进行曲线拟合,并将结果与理论曲线相比较。
【求解】类似于上面的例子~可以用几乎一致的语句得出样本数据和插值效果。
>> t=0:0.2:3;y=sin(10*t.^2+3); plot(t,y,'o')ezplot('sin(10*t^2+3)',[0,3]); hold on x1=0:0.001:3;y1=interp1(t,y,x1,'spline'); plot(x1,y1)由于曲线本身变换太大~所以在目前选定的样本点下是不可能得出理想插值效果的~因为样本数据提供的信息量不够。
为了得到好的插值效果~必须增大样本数据的信息量~对本例来说~必须在快变化区域减小样本点的步长。
>> hold offt=[0:0.1:1,1.1:0.04:3]; y=sin(10*t.^2+3); plot(t,y,'o')ezplot('sin(10*t^2+3)',[0,3]); hold on x1=0:0.001:3;y1=interp1(t,y,x1,'spline'); plot(x1,y1)241,,xy22fxyexyxy,,(,)sin()2、用原型函数生成一组网络数据或随机数据,分别拟合出曲3xy,3面,并和原曲面进行比较。
【求解】由下面的语句可以直接生成一组网格数据~用下面语句还可以还绘制出给定样本点是三维表面图。
>> [x,y]=meshgrid(0.2:0.2:2);z=exp(-x.^2-y.^4).*sin(x.*y.^2+x.^2.*y)./(3*x.^3+y); surf(x,y,z) 选择新的密集网格~则可以通过二元插值得出插值曲面。
Matlab实验及答案-推荐下载
(7) 有一段指令如下,请思考并说明运行结果及其原因 clear
X=[1 2;8 9;3 6]; X( : ) 转化为列向量
>> clear >> X=[1,2;8,9;3,6]; >> X(:) ans =
1 8 3 2 9 6 (8) 使用 help 命令,明白什么是稀疏矩阵 sparse( ),并用采用两种方法创
实验一、MATLAB 基本操作
一、实验目的
2.学习使用图形函数计算器命令 funtool 及其环境。 3. 学习使用 help 命令进行帮助 4. 掌握向量与矩阵的创建以及矩阵的基本操作 5. 掌握数组与矩阵的概念 二、 实验内容
熟悉 Matlab 操作环境,认识命令窗口、内存工作区窗口、历史命令窗口;学会 使用 format 命令调整命令窗口的数据显示格式;学会使用变量和矩阵的输入, 并进行简单的计算;掌握数组与矩阵的概念;学会使用 help 命令进行帮助;学 会使用 who 和 whos 命令查看内存变量信息;学会使用图形函数计算器 funtool;
Error: Unbalanced or misused parentheses or brackets. 前面那个是虚数矩阵,后面那个出错 (6) 请写出完成下列计算的指令:
a=[1 2 3;3 4 2;5 2 3],求 a^2=?,a.^2=?
a^2= 22 16 16 25 26 23 26 24 28
并将其单下标转换成全下标。
clear,clc
a=[1 -2 3;4 5 -4;5 -6 7];
b=find(a<0)
[x,y]=ind2sub(size(a),find(a<0))
MATLAB原理及应用实验报告第四章答案
《MATLAB 原理及应用》实验报告三.课后练习题答案1.为 ⎪⎩⎪⎨⎧<-=>+=01001x x x xx x y 编写赋值程序。
程序如下:①建立如下的M 文件:x=input('x=');%让用户通过键盘输入数值、字符串或表达式if x>0y=x+1;elseif x==0y=x;else x<0y=x-1;e nd程序执行结果如下>> kh1 %在当前工作目录下,文件名为“kh.1.m ” x=1>> yy =22.使用for ... end循环的array向量编程求出1+3+5...+100 的值程序如下:sum=0;>> for k=1:2:100sum=sum+k;end>> sumsum =25003.计算1+3+5...+100 的值,当和大于1000时终止计算。
程序如下:sum=0;for m=1:2:100; %建立1 3 5….100的向量if sum<=1000 %如果sum小于1000则可以继续加sum=sum+m; %累加elsebreak; %若sum的结果不符合条件就跳出整个循环endend结果为:sum =1024k =653.1计算从1开始多少个自然数之和超过100。
程序如下:>> sum=0;n=0;>> while sum<=100n=n+1;sum=sum+n;end结果为:n =14sum =1054.求1!+2!+3!+……+8!的值程序如下:n=1;sum=1;for m=2:8; %循环7次使得得到各次阶乘n=n*m;sum=sum+n; %累加end结果为:sum =462335.写程序,判断一年是否为闰年,符合下面两条件之一:(1990~2014)A、能被4整除,不能被100整除B、能被400整除程序如下count=0;for y=1990:2014;if((rem(y,4)==0&rem(y,100)~=0)|(rem(y,4)==0&rem(y,400)~=0));count=count+1;endend结果为:count =5。
MATLAB全部实验及答案
实验项目序号1 MATLAB基本操作一、实验目的熟悉MATLAB软件环境,掌握命令窗口的使用。
二、实验基本知识1、熟悉MATLAB的桌面工具和环境:2、Start菜单&~三、主要仪器及耗材计算机四、实验内容和步骤1、MATLAB的启动及操作界面认识说明有哪几种启动的方法;操作界面有哪些窗口;对常用的窗口作些简单的介绍。
使用Windows的“开始”菜单。
运行MATLAB系统的启动程序。
{利用桌面上的快捷方式。
MATLAB主窗口命令窗口(Command Window)当前目录窗口(Current Directory)工作空间窗口(Workspace)命令历史窗口(Command History)2、下列符号中哪些是MATLAB的合法变量名用给变量赋值的方法在机器上验证你的答案(3vars、global、help、My_exp、sin、X+Y、_input、E-4、AbCd、AB_C_。
)help,My_exp,sin,AbCd,AB_C_;3、命令窗口的简单使用1)简单矩阵的输入¥1 2 3A = 4 5 67 8 92)求[12+2×(7-4)]÷32的算术运算结果4、有关向量、矩阵或数组的一些运算1)设A=15;B=20;求C=A+B与c=a+b2)设A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B与A.*BA*B遵循矩阵运算,A.*B遵循每个对应元素之间进行相乘3)设A=10,B=20;求C=A/B与D=A\B :4)设a=[1 -2 3;4 5 -4;5 -6 7]请设计出程序,分别找出小于0的矩阵元素及其位置(单下标、全下标的形式),并将其单下标转换成全下标>> a=[1 -2 3;4 5 -4;5 -6 7];/%定义矩阵>> b = a(find(a<0));%找到a中小于零的元素b =-2-6-4>> c = find(a<0) %找到小于零元素的单下标~c =468>> [x,y] = find(a<0) %找到小于零元素的双下标>> [x,y] = ind2sub(size(a),find(a<0)) %单下标转换为双下标5)在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何6)请设计出程序完成下列计算:a=[1 2 3;3 4 2;5 2 3],求a^2=,a.^2=解:`>> a=[1 2 3;3 4 2;5 2 3];>> a^2 % 矩阵运算>> a.^2 %数组与矩阵的乘法7)有一段程序设计如下,请思考并说明运行结果及其原因clearX=[1 2;8 9;3 6];X( : )解:转化X为列向量8)使用两种方法,创建一稀疏矩阵?解:1)>>a = eye(5); %创建5阶单位矩阵>>sparse(a) %将a构造为稀疏矩阵ans =(1,1) 1(2,2) 1(3,3) 1(4,4) 1(5,5) 12)>> data = [1 2 2 2];]>> ir = [1 3 2 4];>> jc = [1 2 4 1];>> s=sparse(ir,jc,data,4,4)s =(1,1) 1(4,1) 2 (3,2) 2 (2,4) 29)写出下列指令的运行结果%>> A = [ 1 2 3 ]; B = [ 4 5 6 ]; >> C = 3.^A C =3 9 27 >> D = A.^BD =1 32 7295、已知⎪⎭⎫⎝⎛+⋅=-334sin 234πt e y t 若需要计算t ∈[-1,1],取间隔为,试计算出相对应的y 值。
实验4答案 Matlab程序设计1
实验4 Matlab 程序设计1实验目的:1、 掌握建立和执行M 文件的方法;2、 掌握实现选择结构的方法;3、 掌握实现循环结构的方法。
实验内容:1. 从键盘输入一个4位整数,按如下规则加密后输出。
加密规则:每位数字都加上7,然后用和除以10的余数取代该数字;再把第一位与第三位交换,第二位与第四位交换。
a = input('请输入一个四位整数:');a1 = fix(a/1000);a2 = rem(fix(a/100),10);a3 = rem(rem(fix(a/10),100),10);a4 = rem(a,10);a1 = rem(a1+7,10)a2 = rem(a2+7,10)a3 = rem(a3+7,10)a4 = rem(a4+7,10)b1 = a1;a1 = a3;a3 = b1;b2 = a2;a2 = a4;a4 = b2;b = a1*1000+a2*100+a3*10+a42. 求分段函数的值。
,x x x x y x x x x x x x ⎧+- <≠-⎪=-+ ≤<≠≠⎨⎪-- ⎩2226035605231且且及其他用if 语句实现,分别输出x=-5,-3,0,1,2,2.5,3,5时的y 值。
x = input(请输入X 的值:');if x <0 & x~=-3y = x.*x +x-6;elseif x>=0 & x<5 & x~=2 & x~=3y = x.*x-5*x+6;elsey = x.*x-x-1;endy3.输入一个百分制成绩,要求输出成绩等级A、B、C、D、E,其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。
要求:(1)分别用if语句和swich语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
MATLAB实验答案
实验一:变量和矩阵的赋值、矩阵的初等运算实验目的:1. 熟悉MATLAB的工作环境2. 掌握变量的赋值、矩阵的创建。
3. 掌握矩阵和数组的初等运算。
4. 熟悉和掌握inv、mean、var、randn、rand、ones、zeros、magic、eye函数的使用。
实验内容:1. 菜单栏File→Preferences→Command Window→Font and Colors修改字体,选择Use custom font改为24。
同样方法File→Preferences→Editor/Debugger→Font and Colors 修改字体,选择Use custom font改为24。
点击Apply,OK即可。
2. 在内产生均匀分布的200个点,形成1×200向量赋给变量X。
(结果不必记录)X=linspace(0,2*pi,200);3. 在内每间隔3产生向量Y。
Y=[0:3:10];4. 给矩阵赋值,,打开workspace查看矩阵的赋值。
使用save data A B语句存储到data.mat数据文件中。
输入Clear all命令清空所有变量,再使用load data加载矩阵A 和B。
A=[1 4 8 13;-3 6 -5 -9;2 -7 -12 18];B=[5 4 3 -2;6 -2 3 -8;-1 3 -9 7];save data A B;clear all;load data;5. 产生8*6阶的正态分布随机数矩阵R,求其各列的平均值和方差,并求全体的平均值和方差。
R=randn(8,6);a=mean(R);b= var(R);c=mean(R(:));d=var(R(:));6. 模拟选号程序,现有10000人,按顺序编号为1,2,…10000号,一次随机选出一个编号,要求随机数均匀分布。
R=round(ceil(rand(10000,1)*10000));7. 产生4*6阶的均匀分布随机数矩阵R,要求其元素在1~16之间取整数值,并求此矩阵前四列组成的方阵的逆阵。
MATLAB实验四:MATLAB程序设计 参考答案
function y=f(x) y=(x^3-2*x^2+x-6.3)/(x^2+0.05*x-3.14)
河南财经政法大学数学与信息科学学院
6
实验报告
f(1)*f(2)+f(3)
function f=f(a,b,c) f=g(a)*g(b)+g(c)^2; function g=g(x) g=(x^3-2*x^2+x-6.3)/(x^2+0.05*x-3.14);
a=rand(1,100); [b,c]=sort(a); index=c(1); i=1; while i<=7 if i==8 disp('You Lost!'); i=i+1; else d=input('please input the number you guess:'); if d>index disp('High'); elseif d<index disp('Low'); elseif d==index disp('You won!'); i=9;
syms i j k l n i=1;k=0; n=input('Input n:'); for j=1:n i=i*j; k=k+j; end fprintf('%d!=%d \n Sum(1,...,%d)=%d\n',n,i,n,k);
4、用 while-end 循环语句求不超过 1000 的偶数之和,并求显示出最大值。 s=0,n=0; while s<=1000 n=n+2; s=s+n; if s>1000 break end
数学实验4(程序设计)参考答案
实验4 MATLAB 程序设计一、实验目的:1.理解命令式M 文件和函数式M 文件的关系及各自的特点;2.掌握MATLAB 中关系运算和逻辑运算的正确使用方法;3.掌握MATLAB 中两种循环结构及选择结构的正确使用方法;4.能够编制简单的程序解决实际问题。
二、实验内容:1.满足条件01=a ,12=a ,…,n n n a a a +=++12(n=0,1,…)的数列称为Fibonacci 数列,(1)编写一个MATLAB 函数式M 文件fibo.m 来计算Fibonacci 数列的任意项的数值;(2)计算数列中第50项的数值并给出程序运行所用的时间;(3)编写一个MATLAB 命令式M 文件调用函数式M 文件fibo.m 来计算Fibonacci 数列的前n 项和的值;给出n=50时的结果。
(1)计算Fibonacci 数列的程序function x=fibo(n)if n<1|fix(n)~=ndisp('N must be a positive integer.');elseif n==1;x=0;elseif n==2x=[0,1];elsex=zeros(1,n);x(1)=0;x(2)=1;for k=3:nx(k)=x(k-1)+x(k-2);endend(2)计算数列中第50项的数值x= fibo(50);ticF=x(50)toc(3)Fibonacci 数列的前50项和的值x= fibo(50);FF=sum(x)2.利用下面的公式计算π的值14134171513114---++-+-=N N π,选择不同的N 值,比较结果的精确度。
function PI=hw2(n)if n<1|fix(n)~=ndisp('N must be a positive integer.');elsePI=0;for k=1:nx=1/(4*k-3)-1/(4*k-1);PI=PI+x;endendPI=4*PI;n N的最小正整数n。
matlab课后习题答案第四章
第4章数值运算习题 4 及解答1 根据题给的模拟实际测量数据的一组t和)(t y试用数值差分diff或数值梯度gradient指令计算)(t y',然后把)(t y和)(t y'曲线绘制在同一张图上,观察数值求导的后果。
(模拟数据从prob_data401.mat 获得)〖目的〗●强调:要非常慎用数值导数计算。
●练习mat数据文件中数据的获取。
●实验数据求导的后果●把两条曲线绘制在同一图上的一种方法。
〖解答〗(1)从数据文件获得数据的指令假如prob_data401.mat文件在当前目录或搜索路径上clearload prob_data401.mat(2)用diff求导的指令dt=t(2)-t(1);yc=diff(y)/dt; %注意yc的长度将比y短1plot(t,y,'b',t(2:end),yc,'r')grid on(3)用gradent 求导的指令(图形与上相似)dt=t(2)-t(1);yc=gradient(y)/dt;plot(t,y,'b',t,yc,'r')grid on〖说明〗● 不到万不得已,不要进行数值求导。
● 假若一定要计算数值导数,自变量增量dt 要取得比原有数据相对误差高1、2个量级以上。
● 求导会使数据中原有的噪声放大。
2 采用数值计算方法,画出dt tt x y x ⎰=0sin )(在]10 ,0[区间曲线,并计算)5.4(y 。
〖提示〗● 指定区间内的积分函数可用cumtrapz 指令给出。
● )5.4(y 在计算要求不太高的地方可用find 指令算得。
〖目的〗● 指定区间内的积分函数的数值计算法和cumtrapz 指令。
● find 指令的应用。
〖解答〗dt=1e-4;t=0:dt:10;t=t+(t==0)*eps;f=sin(t)./t;s=cumtrapz(f)*dt;plot(t,s,'LineWidth',3)ii=find(t==4.5);s45=s(ii)s45 =1.65413 求函数x ex f 3sin )(=的数值积分⎰=π0 )(dx x f s ,并请采用符号计算尝试复算。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四GUI 设计专业
学号姓名成绩电气工程及其自
动化201409140305
杨诚1.创建GUI 绘制方程c bx ax y ++=2图形,需要显示绘图结果的坐标系窗口,还能够输入
a ,
b ,
c 的值和x 取值范围(最大值和最小值)。
回调函数的编写:
a=str2num(get(handles.edit1,'String'));b=str2num(get(handles.edit2,'String'));c=str2num(get(handles.edit3,'String'));xmin=str2num(get(handles.edit4,'String'));xmax=str2num(get(handles.edit5,'String'));x=xmin:0.1:xmax;y=a*x.^2+b*x+c;plot(x,y);
设计的运行界面截图:
2.设计一个GUI,完成画出y=sin(x)、y=cos(x)和y=x
3.的波形图。
回调函数的编写:
x=-5:0.1:5
plot(x,sin(x))
x=-5:0.1:5
plot(x,cos(x))
x=-5:0.1:5 y=x.^3
plot(x,y)
设计的运行界面截图:
3.创建一个GUI,含有下拉菜单,下拉菜单中有背景颜色选择。
回调函数的编写:
yanse=get(handles.popupmenu1,'value');
switch yanse
case1
set(gcf,'color','r');
case2
set(gcf,'color','y');
case3
set(gcf,'color','g');
end
设计的运行界面截图:
4.使用GUI设计一个计算器,可以实现两个数的和运算,这两个加数可以任意输入,结果显示在窗口中。
回调函数的编写:
a=str2num(get(handles.edit1,'String'));
b=str2num(get(handles.edit2,'String'));
c=a+b;
set(handles.text3,'string',c)
设计的运行界面截图:。