实验二MATLAB程序设计含实验报告精编版
- 格式:docx
- 大小:177.16 KB
- 文档页数:10
MATLAB实验报告实验报告课程名称 MATLAB基础及应用专业班级电子xxxx姓名学号电气与信息学院实验二 MATLAB 数值计算(一)一实验目的:1.掌握数组的创建与运算方法;2. 掌握矩阵的创建与运算方法;3. 掌握数组的运算方法和矩阵运算方法的区别;4.掌握线性方程的求解方法二实验装置:计算机三实验内容:1.数组的创建和运算创建两个含5个元素的一维数组,并求这两个数组的四则运算。
2.矩阵的创建和运算(1)创建两个3×3的矩阵,并求这两个矩阵的四则运算。
(2)创建一个4×4的矩阵,并求这个矩阵的行列式值。
(3)线性方程的求解解方程组=6613753467294x 。
四实验要求:写出实验程序与仿真结果。
1. >> a=linspace(2,10,5) a =2 4 6 8 10>> b=linspace(1,9,5) b =1 3 5 7 9>> a+bans =3 7 11 15 19>> a-bans =1 1 1 1 1>> a.*bans =2 12 30 56 90>> a./bans =2.0000 1.3333 1.2000 1.1429 1.1111 >> a.\b ans =0.5000 0.7500 0.8333 0.8750 0.9000 2.(1) >> a=[1 1 1;2 2 2;3 3 3];>> b=[4 4 4;5 5 5;6 6 6];>> a+bans =5 5 57 7 79 9 9>> a-bans =-3 -3 -3-3 -3 -3-3 -3 -3>> a*bans =15 15 1530 30 3045 45 45>> a/bWarning: Matrix is singular to working precision. ans =NaN NaN NaNNaN NaN NaNNaN NaN NaN>> a\bWarning: Matrix is singular to working precision. ans =NaN NaN NaNNaN NaN NaNInf Inf Inf(2).>> a=[1 1 1 1;2 2 2 2;3 3 3 3;4 4 4 4];>> det(a)ans =(3).>> a=[4 9 2;7 6 4;3 5 7];>> b=[13;6;6];>> x=inv(a)*bx =-0.53081.7109-0.1374实验三 MATLAB数值计算(二)一实验目的:1.掌握多项式的创建与运算方法;2. 掌握基本的数据分析方法;二实验装置:计算机三实验内容:1.多项式创建输入系数矢量,创建多项式x^3-2*x^2+5*x+3。
程序设计实验报告(matlab)实验一: 程序设计基础实验目的:初步掌握机器人编程语言Matlab。
实验内容:运用Matlab进行简单的程序设计。
实验方法:基于Matlab环境下的简单程序设计。
实验结果:成功掌握简单的程序设计和Matlab基本编程语法。
实验二:多项式拟合与插值实验目的:学习多项式拟合和插值的方法,并能进行相关计算。
实验内容:在Matlab环境下进行多项式拟合和插值的计算。
实验方法:结合Matlab的插值工具箱,进行相关的计算。
实验结果:深入理解多项式拟合和插值的实现原理,成功掌握Matlab的插值工具箱。
实验三:最小二乘法实验目的:了解最小二乘法的基本原理和算法,并能够通过Matlab进行计算。
实验内容:利用Matlab进行最小二乘法计算。
实验方法:基于Matlab的线性代数计算库,进行最小二乘法的计算。
实验结果:成功掌握最小二乘法的计算方法,并了解其在实际应用中的作用。
实验六:常微分方程实验目的:了解ODE的基本概念和解法,并通过Matlab进行计算。
实验内容:利用Matlab求解ODE的一阶微分方程组、变系数ODE、高阶ODE等问题。
实验方法:基于Matlab的ODE工具箱,进行ODE求解。
实验结果:深入理解ODE的基本概念和解法,掌握多种ODE求解方法,熟练掌握Matlab的ODE求解工具箱的使用方法。
总结在Matlab环境下进行程序设计实验,使我对Matlab有了更深刻的认识和了解,也使我对计算机科学在实践中的应用有了更加深入的了解。
通过这些实验的学习,我能够灵活应用Matlab进行各种计算和数值分析,同时也能够深入理解相关的数学原理和算法。
这些知识和技能对我未来的学习和工作都将有着重要的帮助。
v1.0 可编辑可修改实验一 MATLAB 环境的熟悉与基本运算一、实验目的及要求1.熟悉MATLAB 的开发环境; 2.掌握MATLAB 的一些常用命令;3.掌握矩阵、变量、表达式的输入方法及各种基本运算。
二、实验内容1.熟悉MATLAB 的开发环境: ① MATLAB 的各种窗口:命令窗口、命令历史窗口、工作空间窗口、当前路径窗口。
②路径的设置:建立自己的文件夹,加入到MATLAB 路径中,并保存。
设置当前路径,以方便文件管理。
2.学习使用clc 、clear ,了解其功能和作用。
3.矩阵运算:已知:A=[1 2;3 4]; B=[5 5;7 8]; 求:A*B 、A.*B ,并比较结果。
4.使用冒号选出指定元素:已知:A=[1 2 3;4 5 6;7 8 9]; 求:A 中第3列前2个元素;A 中所有列第2,3行的元素; 5.在MATLAB 的命令窗口计算: 1) )2sin(π2) 5.4)4.05589(÷⨯+ 6.关系及逻辑运算1)已知:a=[5:1:15]; b=[1 2 8 8 7 10 12 11 13 14 15],求: y=a==b ,并分析结果 2)已知:X=[0 1;1 0]; Y=[0 0;1 0],求: x&y+x>y ,并分析结果 7.文件操作1)将0到1000的所有整数,写入到D 盘下的文件 2)读入D 盘下的文件,并赋给变量num8.符号运算1)对表达式f=x 3-1 进行因式分解2)对表达式f=(2x 2*(x+3)-10)*t ,分别将自变量x 和t 的同类项合并 3)求3(1)xdz z +⎰三、实验报告要求完成实验内容的3、4、5、6、7、8,写出相应的程序、结果实验二 MATLAB 语言的程序设计一、实验目的1、熟悉 MATLAB 程序编辑与设计环境2、掌握各种编程语句语法规则及程序设计方法3、函数文件的编写和设计4、了解和熟悉变量传递和赋值二、实验内容1.编写程序,计算1+3+5+7+…+(2n+1)的值(用input 语句输入n 值)。
Tutorial4 实验报告实验名称:Matlab 程序设计2实验目的:1、 熟悉利用向量运算来代替循环操作的方法。
2、 熟悉异常处理的应用3、 熟悉函数的嵌套调用和递归调用4、 熟悉全局变量的应用5、 熟悉函数参数的可调性 实验内容:1. 根据2222211116123n=++++π,求π的近似值。
当n 分别取100、1000、10000时,结果是多少?要求:分别用循环结构和向量运算(使用sum 函数)来实现。
2. 建立一个函数,要求输出某个矩阵的第n 行元素。
当n 值超过矩阵的行数时,自动转为输出矩阵的最后一行元素,并给出出错信息。
提示:利用warning3. 先用函数的递归调用定义一个函数文件求1nmi i=∑,然后调用该函数文件求100501021111k k k k k k ===++∑∑∑4. 已知,,,,12312311021323n n n n f n f n f n f f f f n ---==⎧⎪==⎪⎨==⎪⎪=-+>⎩ 求1100f f 中:(1)最大值、最小值、各数之和。
(2)正数、零、负数的个数。
5. 编写一个函数,当用户输入的是一个数组参数的时候表示求其相反数,当用户输入的是两个数组参数的时候是求两个值的差值,但如果两个值的空间大小不相等,则给出错误提示“两个数组空间大小不一致”后,结束程序运行。
提示:利用error6. 写出下列程序的输出结果。
命令文件exe.mglobal xx = 1:2:5;y = 2:2:6;sub(y);x,y函数文件sub.mfunction fun = sub(z)global xz = 3*x;x = x+z;实验代码及结果1.2.3.4.5.6.。
实验二MATLAB 程序设计一、 实验目的1.掌握利用if 语句实现选择结构的方法。
2.掌握利用switch 语句实现多分支选择结构的方法。
3.掌握利用for 语句实现循环结构的方法。
4.掌握利用while 语句实现循环结构的方法。
5.掌握MATLAB 函数的编写及调试方法。
二、 实验的设备及条件计算机一台(带有MATLAB7.0以上的软件环境)。
M 文件的编写:启动MATLAB 后,点击File|New|M-File ,启动MATLAB 的程序编辑及调试器(Editor/Debugger ),编辑以下程序,点击File|Save 保存程序,注意文件名最好用英文字符。
点击Debug|Run 运行程序,在命令窗口查看运行结果,程序如有错误则改正三、 实验内容1.编写求解方程02=++c bx ax 的根的函数(这个方程不一定为一元二次方程,因c b a 、、的不同取值而定),这里应根据c b a 、、的不同取值分别处理,有输入参数提示,当0~,0,0===c b a 时应提示“为恒不等式!”。
并输入几组典型值加以检验。
(提示:提示输入使用input 函数)2.输入一个百分制成绩,要求输出成绩等级A+、A 、B 、C 、D 、E 。
其中100分为A+,90分~99分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。
要求:(1)用switch 语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
(提示:注意单元矩阵的用法)3.数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。
重复此过程,最终得到的结果为1。
如:2?13?10?5?16?8?4?2?16?3?10?5?16?8?4?2?1运行下面的程序,按程序提示输入n=1,2,3,5,7等数来验证这一结论。
请为关键的Matlab 语句填写上相关注释,说明其含义或功能。
MATLAB实验报告2实验(2)Matlab 基础操作实验:符号运算求解微积分与线性代数1. 求下列函数极限(Find the limits of the following functions )(1) 0sin lim x xx →syms x r ;r=sin(x)/x;limit(r,x,0)ans =1(2) 1lim(1)x x x →∞+syms x r ;r=(1+1/x)^x;limit(r,x,inf)ans =exp(1) (3) lim (1)xx a x →+∞+syms x r a ;r=(1+a/x)^x;limit(r,x,inf)ans =exp(a)(4) 1lim (1)xx x →-∞+syms x r ;r=(1+1/x)^x;limit(r,x,-inf)ans =exp(1) (5)201cos lim x xx →-syms x r ;r=(1-cos(x))/(x^2);limit(r,x,0)ans =实验(2)Matlab 基础操作实验:符号运算求解微积分与线性代数1/2(6) lim nsyms n r ;r=n^(1/n);limit(r,n,inf)ans =1(7)0lim x x π+→ syms x n r ;r=(cos(sqrt(x)))^(n/x);limit(r,x,0,'right')ans =1/exp(n/2)2.求下列函数的导数或偏导数( Find the derivatives of the following functions)(1)()()f x g x ==syms x a b c f g ;f=sqrt(a*x^2+b*x+c);g=sqrt(exp(x^2)+x*sin(x));a1=diff(f,x)a2=diff(g,x)a1 =(b + 2*a*x)/(2*(a*x^2 + b*x + c)^(1/2))a2 =(sin(x) + 2*x*exp(x^2) + x*cos(x))/(2*(exp(x^2) + x*sin(x))^(1/2))(2)3()ln()f x x =syms x f ;f=log(x^3);实验(2)Matlab基础操作实验:符号运算求解微积分与线性代数diff(f,x)ans =3/x(3)Find the 3rd derivative of f(x).()f x=2xxe-syms x f;f=x*exp(-x^2);diff(f,x,3)ans =(24*x^2)/exp(x^2) - 6/exp(x^2) - (8*x^4)/exp(x^2) (4) )Find23222(235)x x y yx-+-?syms x y f;f=x^3-2*x^2*y^2+3*y-5; diff(f,x,2)ans =6*x - 4*y^2(5)Find2322(235)x x y yx y-+-.syms x y f;f=x^3-2*x^2*y^2+3*y-5;fx=diff(f,x);fxy=diff(fx,y)fxy =-8*x*y3. 求下列函数的不定积分或定积分(Find indefinite integrals or definite integrals of the functions)(1)1(sin2cos3)xx x e dxx--++syms x s;s=sin(x)-2*cos(3*x)+1/x+exp(-x); int(s,x)ans =实验(2)Matlab 基础操作实验:符号运算求解微积分与线性代数log(x) - (2*sin(3*x))/3 - cos(x) - 1/exp(x)(2)sin()x x e e dx ?syms x s ;s=exp(x)*sin(exp(x));int(s,x)ans =-cos(exp(x))(3)2syms x s ;s=x^2/(sqrt(x^6)+4);int(s,x)Warning: Explicit integral could not be found.ans =int(x^2/((x^6)^(1/2) + 4), x)(4)cos3cos5x xdx ?syms x s ;s=cos(3*x)*cos(5*x);int(s,x) ans =sin(2*x)/4 + sin(8*x)/16(5) syms x s a ;s=(sqrt(x^2-a^2))/x;int(s,x)ans =实验(2)Matlab 基础操作实验:符号运算求解微积分与线性代数(x^2 - a^2)^(1/2) - log(((-a^2)^(1/2) + (x^2 -a^2)^(1/2))/x)*(-a^2)^(1/2)(6) sin ax e bxdx ?syms x s a b ;s=exp(a*x)*sin(b*x);int(s,x)ans =-(exp(a*x)*(b*cos(b*x) - a*sin(b*x)))/(a^2 + b^2) (7) 0πsyms x s ;s=sqrt(sin(x)-(sin(x))^3);int(s,x,0,pi)Warning: Explicit integral could not be found.ans =int((sin(x) - sin(x)^3)^(1/2), x = 0..pi) (8) 211dx x +∞? syms x s ;s=1/(x^2);int(s,x,1,inf)14. 解下列方程(Solve the equations.)x =syms x ;solve(sqrt(1-x^2)-x,x)ans =2^(1/2)/2实验(2)Matlab基础操作实验:符号运算求解微积分与线性代数(2)1024x y zx y zx y z++=-+=--=-syms x y z;s=solve(x+y+z-10,x-y+z,2*x-y-z+4,x,y,z) s.x,s.y,s.z s =x: [1x1 sym]y: [1x1 sym]z: [1x1 sym]2ans =5ans =3(3)240330sin0x xy zx yzy z++=+-=+=syms x y z;s=solve(x^2+4*x*y+z,x+3*y*z-3,y+sin(z),x,y,z) s.x,s.y,s.z s =x: [1x1 sym] y: [1x1 sym] z: [1x1 sym]实验(2)Matlab 基础操作实验:符号运算求解微积分与线性代数ans =-6.4840528860501102693511549985753ans =-0.071995758403084664887655346911159ans =-43.9102390493223146672631539563435. 求解下列常微分方程(Solve the following ordinary differential equations.)(1)ln()xy y xy y '=-syms x y ;s=dsolve('x*Dy=y*log(x*y)-y','x')s =1/xexp(exp(C8 + log(x)))/x (2)20(1)5dv t dt v ?+==? syms v t ;s=dsolve('Dv+2*t=0','v(1)=5','t')s =6 - t^2(3)()0y a b y aby '''-++=syms a b x y ;s=dsolve('D2y-(a+b)*Dy+a*b*y=0','x')s =实验(2)Matlab 基础操作实验:符号运算求解微积分与线性代数C13*exp(a*x) + C14*exp(b*x)6. 用MATLAB 验证(Use MALTAB to prove the following identities)(1) 22sin cos 1x y +=syms x ;s=solve((sin(x))^2+cos((x))^2-1,x)s =C_求解此方程所得的解是全体实数因此该等式在实数域上成立。
matlab程序设计实验报告《MATLAB程序设计实验报告》摘要:本实验报告旨在介绍MATLAB程序设计的基本原理和实践操作,通过实验演示和分析,展示了MATLAB在工程领域的应用和重要性。
本报告详细介绍了MATLAB程序设计的基本语法和常用函数,以及如何利用MATLAB进行数据处理、图像处理、信号处理等工程应用。
通过本报告的学习,读者将能够掌握MATLAB程序设计的基本技能,为工程实践提供有力的支持。
1. 引言MATLAB是一种用于算法开发、数据可视化、数据分析和数值计算的高级技术计算语言和交互式环境。
它具有强大的数学计算功能和丰富的绘图工具,广泛应用于工程、科学和金融等领域。
本实验报告将介绍MATLAB程序设计的基本原理和实践操作,帮助读者快速掌握MATLAB的基本技能。
2. 实验目的本实验的主要目的是让读者了解MATLAB程序设计的基本语法和常用函数,掌握MATLAB在工程领域的应用和重要性。
通过实验演示和分析,展示MATLAB 在数据处理、图像处理、信号处理等方面的应用。
3. 实验内容(1)MATLAB程序设计的基本语法和常用函数(2)利用MATLAB进行数据处理的实验演示(3)利用MATLAB进行图像处理的实验演示(4)利用MATLAB进行信号处理的实验演示4. 实验步骤(1)学习MATLAB程序设计的基本语法和常用函数(2)编写MATLAB程序,实现数据处理、图像处理、信号处理等功能(3)进行实验演示和分析,展示MATLAB在工程领域的应用和重要性5. 实验结果与分析通过本实验的学习,读者将能够掌握MATLAB程序设计的基本技能,包括数据处理、图像处理、信号处理等方面的应用。
通过实验演示和分析,读者将了解MATLAB在工程领域的重要性,为工程实践提供有力的支持。
6. 结论MATLAB程序设计是一种强大的工程工具,具有广泛的应用前景。
通过本实验报告的学习,读者将能够掌握MATLAB程序设计的基本技能,为工程实践提供有力的支持。
Matlab实验报告实验2 数值数组及运算一、实验目的(1)掌握一维数组、二维数组、多项式和高维数组的创建(2)掌握对数组操作的常用函数二、实验内容使用冒号运算符创建下面各表达式对应的向量。
>> x=logspace(1,3,3); x=10.^[1:3]x =10 100 1000>> x=logspace(1,3,5)x =1.0e+003 *0.0100 0.0316 0.1000 0.3162 1.0000利用MATLAB内置函数计算下面的值>>cosh(5)ans =74.2099>>sinh(-2)ans =-3.6269>> (exp(5)+exp(-5))/2ans =74.2099>> help erfERF Error function.Y = ERF(X) is the error function for each element of X. X must be real. The error function is defined as:erf(x) = 2/sqrt(pi) * integral from 0 to x of exp(-t^2) dt.Class support for input X:float: double, singleSee also erfc, erfcx, erfinv.Overloaded functions or methods (ones with the same name in other directories) helpsym/erf.mReference page in Help browserdoc erf>>erf(1.2)ans =0.9103利用linspace函数创建下面表达式的对应向量>> x=0:10; x=linspace(0,10,11)x =0 1 2 3 4 5 6 7 8 9 10>> x=0:0.2:10; x=linspace(0,10,51)x =Columns 1 through 160 0.2000 0.4000 0.6000 0.8000 1.0000 1.20001.4000 1.6000 1.80002.0000 2.2000 2.4000 2.6000 2.80003.0000Columns 17 through 323.2000 3.4000 3.6000 3.80004.0000 4.2000 4.40004.6000 4.80005.0000 5.2000 5.4000 5.6000 5.80006.0000 6.2000Columns 33 through 486.4000 6.6000 6.80007.0000 7.2000 7.4000 7.60007.8000 8.0000 8.2000 8.4000 8.6000 8.8000 9.0000 9.2000 9.4000Columns 49 through 519.6000 9.8000 10.0000>> x=-12:12; x=linspace(-12,12,25)x =-12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12>> x=10:-1:1; x=linspace(10,1,10)x =10 9 8 7 6 5 4 3 2 1>> x=[10 9 8 7]x =10 9 8 7>> x=[10 9 8 7];y=[1 2 3 4]'; z=x-y';>> zz =9 7 5 3计算>> A=[1 2 3 3;2 3 5 7;1 3 5 7;3 2 3 9;1 8 9 4];>> B=[1+4i 4 3 6 7;2 3 3 5 5;2 6+7i 5 3 4;1 8 9 4 3];>> C=A*B;>> CC =1.0e+002 *0.1400 + 0.0400i 0.5200 + 0.2100i 0.5100 0.3700 0.38000.2500 + 0.0800i 1.0300 + 0.3500i 1.0300 0.7000 0.70000.2400 + 0.0400i 0.9900 + 0.3500i 1.0000 0.6400 0.63000.2200 + 0.1200i 1.0800 + 0.2100i 1.1100 0.7300 0.70000.3900 + 0.0400i 1.1400 + 0.6300i 1.0800 0.8900 0.9500>> D=C(4:5,3:5);>> DD =111 73 70108 89 95>> A=[1 2 3 3;2 3 5 7;1 3 5 7;3 2 3 9;1 8 9 4];>> A=[1 2 3 3;2 3 5 7;1 3 5 7;3 2 3 9;1 8 9 4]A =1 2 3 32 3 5 71 3 5 73 2 3 91 8 9 4>> A=[4 12 20;12 45 78;20 78 136];>> B=[1 2 3;4 5 6;7 8 0];>> I=[1 0 0;0 1 0;0 0 1];>> A+5*Bans =9 22 3532 70 10855 118 136>> A-B+Ians =4 10 178 41 7213 70 137>> A.*Bans =4 24 6048 225 468140 624 0>> A*Bans =192 228 84738 873 3061284 1518 528>> A.^Bans =1.0e+015 *0.0000 0.0000 0.00000.0000 0.0000 0.00020.0000 1.3701 0.0000>> A\BWarning: Matrix is close to singular or badly scaled.Results may be inaccurate. RCOND = 1.328379e-018. ans =1.0e+015 *0.0000 -0.0000 3.6192-0.0000 0.0000 -7.23840.0000 -0.0000 3.6192>> A/Bans =9.3333 -1.3333 0.000040.0000 -7.0000 0.000070.6667 -12.6667 0.0000>> A(find((A>50)&(A<100)))ans =7878>> B(find(B>5))ans =786>> A=[1 2 NaNInf -Inf 5 NaN]A =1 2 NaNInf -Inf 5 NaN >>isnan(A)ans =0 0 1 0 0 0 1 >>isfinite(A)ans =1 1 0 0 0 1 0 >>isinf(A)ans =0 0 0 1 1 0 0 >> any(A)ans =1>> all(A)ans =1求出以下矩阵的逆矩阵>> A=[1 -5 -2;3 4 -9;-7 2 6]A =1 -5 -23 4 -9-7 2 6>> B=[sin(1) sin(-5) sin(-2);sin(3) sin(4) sin(9); sin(-7) sin(2) sin(6)]B =0.8415 0.9589 -0.90930.1411 -0.7568 0.4121-0.6570 0.9093 -0.2794>>inv(A)ans =-0.1673 -0.1036 -0.2112-0.1793 0.0319 -0.0120-0.1355 -0.1315 -0.0757>>inv(B)ans =6.8645 23.4969 12.31719.7255 35.0011 19.974615.5090 58.6555 32.4631>> A=[1 2 3;4 5 6;7 8 9];>> B=flipud(A)B =7 8 94 5 61 2 3>> u=[1 2 3];>> v=[4 5 6];>> A=[u;v]A =1 2 34 5 6用两行语句实现从C中引用列向量>> C=[11 5;5 1;18 7];>> s=C(:,1)s =11518>> t=C(:,2)t =517使用diag函数和冒号运算符创建下面矩阵>>diag(1:1:4)ans =1 0 0 00 2 0 00 0 3 00 0 0 4>>diag(4:-1:1)ans =4 0 0 00 3 0 00 0 2 00 0 0 1>>diag(1:6:19)ans =1 0 0 00 7 0 00 0 13 00 0 0 19使用diag函数创建nxn对称三对角阵>> a=[2 2 2 2];>> b=[-1 -1 -1];>> D=diag(a)+diag(b,-1)+diag(b,1)D =2 -1 0 0-1 2 -1 00 -1 2 -10 0 -1 2创建矩阵>> e=eye(3);>> E=fliplr(e)E =0 0 10 1 01 0 0>> a=2*eye(5)-ones(5)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>> b=tril(a)b =1 0 0 0 0-1 1 0 0 0-1 -1 1 0 0-1 -1 -1 1 0-1 -1 -1 -1 1>> b(:,5)=1b =1 0 0 0 1-1 1 0 0 1-1 -1 1 0 1-1 -1 -1 1 1-1 -1 -1 -1 1使用rehape函数和冒号运算符创建矩阵>> reshape(2:2:24,3,4)ans =2 8 14 204 10 16 226 12 18 24>> reshape(-5:1:6,2,6)ans =-5 -3 -1 1 3 5-4 -2 0 2 4 6 (a)找出每个矩阵各列中绝对值最大的元素(b)找出每个矩阵各行中绝对值最大的元素>> c=C(:,1)c =21>> max(real(c)) ans =11>> d=C(:,2)d =-4211>> max(real(d)) ans =11>> e=C(1,:)e =11 -4 >> max(real(e)) ans =11>> f=C(2,:)f =2 2 >> max(real(f))2>> c=D(:,1)c =13213>> max(real(c)) ans =13>> d=D(:,2)d =-6223>>>> max(real(d)) ans =23>> e=D(1,:)e =13 -6 >> max(real(e)) ans =13>> f=D(2,:)f =2 2>> max(real(f))ans =2>> c=E(:,1)c =4.5000-3.0000-0.7500>> max(real(c))ans =4.5000>> d=E(:,2)d =1.00001.00001.7500>> max(real(d))ans =1.7500>> e=E(1,:)e =4.5000 1.0000>> max(real(e))ans =4.5000>> f=E(2,:)f =-3 1>> max(real(f))ans =1思考下面的程序>> A=ones(3,2);>> B=2*ones(2,3);>> A*B;>> A(2,3)=2;>> A*B;??? Error using ==>mtimesInner matrix dimensions must agree.>> A*B??? Error using ==>mtimesInner matrix dimensions must agree.>> u=0:3;>> v=(3:-1:0)';>> w=u.*v;??? Error using ==> timesMatrix dimensions must agree.>> clear all>> A=ones(3,3);>> A(k,k)??? Undefined function or variable 'k'.>> A(i,i)??? Subscript indices must either be real positive integers or logicals.定义多项式>> a=[1 -12 25 6];>> p=poly2sym(a)p =x^3-12*x^2+25*x+6>> x(2)求下面矩阵的特征多项式>> D=[2 -1 0 0;-1 2 -1 0;0 -1 2 -1;0 0 -1 2];>> PA=poly(D)PA =1.0000 -8.0000 21.0000 -20.0000 5.0000>> PPA=poly2str(PA,'S')PPA =S^4 - 8 S^3 + 21 S^2 - 20 S + 5计算>> R=[-0.5 -0.3+0.4i -0.3-0.4i];>> P=poly(R)P =1.0000 1.1000 0.5500 0.1250>> PR=real(P)PR =1.0000 1.1000 0.5500 0.1250>> PDR=poly2str(PR,'x')PDR =x^3 + 1.1 x^2 + 0.55 x + 0.125。
Matlab 程序设计实验报告一.实验目的1. 掌握MATLAB 数据对象的特点和运算规则。
2. 掌握MATLAB 中建立矩阵的方法和矩阵的处理方法。
二.实验内容23100.7780414565532503269.5454 3.14A -⎡⎤⎢⎥-⎢⎥=⎢⎥⎢⎥-⎣⎦,0.434328.9421B ⎡⎤=⎢⎥-⎣⎦ 1. 将矩阵A 的某个元素用机器零代替>> A=[23,10,-0.778,0;41,-45,65,5;32,5,0,32;6,-9.54,54,3.14]23.0000 10.0000 -0.7780 041.0000 -45.0000 65.0000 5.000032.0000 5.0000 0 32.00006.0000 -9.5400 54.0000 3.1400>> A(3,2)ans =5>> A(3,2)=epsA =23.0000 10.0000 -0.7780 041.0000 -45.0000 65.0000 5.000032.0000 0.0000 0 32.00006.0000 -9.5400 54.0000 3.1400>>2.将A转化为2x8的矩阵,转化成1x16、16x1的向量>> reshape(A,2,8)ans =23.0000 32.0000 10.0000 0.0000 -0.7780 0 0 32.000041.0000 6.0000 -45.0000 -9.5400 65.0000 54.0000 5.0000 3.1400 >> reshape(A,1,16)ans =Columns 1 through 923.0000 41.0000 32.0000 6.0000 10.0000 -45.0000 0.0000 -9.5400 -0.7780Columns 10 through 16>> reshape(A,16,1)ans =23.000041.000032.00006.000010.0000-45.00000.0000-9.5400-0.778065.000054.00005.000032.00003.140065.0000 0 54.0000 0 5.0000 32.0000 3.14003.自定义一个字符串,求其ASCII>> zifu='abcd 12345ABCD'zifu =abcd 12345ABCD>> abs(zifu)ans =97 98 99 100 32 49 50 51 52 53 65 66 67 68>>4.产生和A一样大小的0矩阵和1矩阵>> A=[23,10,-0.778,0;41,-45,65,5;32,5,0,32;6,-9.54,54,3.14]A =23.0000 10.0000 -0.7780 041.0000 -45.0000 65.0000 5.000032.0000 5.0000 0 32.00006.0000 -9.5400 54.0000 3.1400>> ndims(A)ans =2>> size(A)ans =4 4>> zeros(size(A))ans =0 0 0 00 0 0 00 0 0 00 0 0 0>> ones(size(A))ans =1 1 1 11 1 1 11 1 1 11 1 1 1>>5.从A提取主对角线元素,构成对角阵>> diag(diag(A))ans =23.0000 0 0 00 -45.0000 0 00 0 0 00 0 0 3.1400>>6.产生均值为3,方差为1的500个正态分布的随机序列,写入表达式>> y=3+sqrt(1)*rand(10,50)y =Columns 1 through 93.9501 3.6154 3.0579 3.0153 3.8381 3.1934 3.4966 3.7271 3.79483.2311 3.7919 3.3529 3.7468 3.0196 3.6822 3.8998 3.3093 3.95683.6068 3.9218 3.8132 3.4451 3.6813 3.3028 3.8216 3.8385 3.52263.4860 3.7382 3.0099 3.9318 3.3795 3.5417 3.6449 3.5681 3.88013.8913 3.1763 3.1389 3.4660 3.8318 3.1509 3.8180 3.3704 3.17303.7621 3.4057 3.2028 3.4186 3.5028 3.6979 3.6602 3.7027 3.97973.4565 3.9355 3.1987 3.8462 3.7095 3.3784 3.3420 3.5466 3.27143.0185 3.9169 3.6038 3.5252 3.4289 3.8600 3.2897 3.4449 3.25233.8214 3.4103 3.2722 3.2026 3.3046 3.8537 3.3412 3.6946 3.87573.4447 3.8936 3.1988 3.6721 3.1897 3.5936 3.5341 3.6213 3.7373Columns 10 through 183.1365 3.5828 3.2091 3.4154 3.2140 3.6833 3.4514 3.6085 3.08413.0118 3.4235 3.3798 3.3050 3.6435 3.2126 3.0439 3.0158 3.45443.8939 3.5155 3.7833 3.8744 3.3200 3.8392 3.0272 3.0164 3.44183.1991 3.3340 3.6808 3.0150 3.9601 3.6288 3.3127 3.1901 3.35333.2987 3.4329 3.4611 3.7680 3.7266 3.1338 3.0129 3.5869 3.15363.6614 3.2259 3.5678 3.9708 3.4120 3.2071 3.3840 3.0576 3.67563.2844 3.5798 3.7942 3.9901 3.7446 3.6072 3.6831 3.3676 3.69923.4692 3.7604 3.0592 3.7889 3.2679 3.6299 3.0928 3.6315 3.72753.0648 3.5298 3.6029 3.4387 3.4399 3.3705 3.0353 3.7176 3.47843.9883 3.6405 3.0503 3.4983 3.9334 3.5751 3.6124 3.6927 3.5548Columns 19 through 273.1210 3.2319 3.4398 3.9342 3.1370 3.4225 3.2974 3.3759 3.19393.4508 3.2393 3.3400 3.2644 3.8188 3.8560 3.0492 3.0099 3.90483.7159 3.0498 3.3142 3.1603 3.4302 3.4902 3.6932 3.4199 3.56923.8928 3.0784 3.3651 3.8729 3.8903 3.8159 3.6501 3.7537 3.63183.2731 3.6408 3.3932 3.2379 3.7349 3.4608 3.9830 3.7939 3.23443.2548 3.1909 3.5915 3.6458 3.6873 3.4574 3.5527 3.9200 3.54883.8656 3.8439 3.1197 3.9669 3.3461 3.4507 3.4001 3.8447 3.93163.2324 3.1739 3.0381 3.6649 3.1660 3.4122 3.1988 3.3678 3.33523.8049 3.1708 3.4586 3.8704 3.1556 3.9016 3.6252 3.6208 3.65553.9084 3.9943 3.8699 3.0099 3.1911 3.0056 3.7334 3.7313 3.3919Columns 28 through 363.6273 3.7165 3.1146 3.3603 3.4319 3.7327 3.3567 3.6700 3.90903.6991 3.5113 3.6649 3.5485 3.6343 3.4222 3.4983 3.2009 3.59623.3972 3.7764 3.3654 3.2618 3.8030 3.9614 3.4344 3.2731 3.32903.4136 3.4893 3.1400 3.5973 3.0839 3.0721 3.5625 3.6262 3.47823.6552 3.1859 3.5668 3.0493 3.9455 3.5534 3.6166 3.5369 3.59723.8376 3.7006 3.8230 3.5711 3.9159 3.2920 3.1133 3.0595 3.16143.3716 3.9827 3.6739 3.7009 3.6020 3.8580 3.8983 3.0890 3.82953.4253 3.8066 3.9994 3.9623 3.2536 3.3358 3.7546 3.2713 3.95613.5947 3.7036 3.9616 3.7505 3.8735 3.6802 3.7911 3.4091 3.59553.5657 3.4850 3.0589 3.7400 3.5134 3.0534 3.8150 3.4740 3.0287Columns 37 through 453.8121 3.9566 3.1879 3.2460 3.2859 3.7241 3.8289 3.3663 3.22193.6101 3.1472 3.4906 3.5874 3.3941 3.2816 3.1663 3.3025 3.70373.7015 3.8699 3.4093 3.5061 3.5030 3.2618 3.3939 3.8518 3.52213.0922 3.7694 3.4635 3.4648 3.7220 3.7085 3.5208 3.7595 3.93293.4249 3.4442 3.6109 3.5414 3.3062 3.7839 3.7181 3.9498 3.71343.3756 3.6206 3.0712 3.9423 3.1122 3.9862 3.5692 3.5579 3.22803.1662 3.9517 3.3143 3.3418 3.4433 3.4733 3.4608 3.0142 3.44963.8332 3.6400 3.6084 3.4018 3.4668 3.9028 3.4453 3.5962 3.17223.8386 3.2473 3.1750 3.3077 3.0147 3.4511 3.0877 3.8162 3.96883.4516 3.3527 3.6210 3.4116 3.6641 3.8045 3.4435 3.9771 3.3557Columns 46 through 503.0490 3.2093 3.1998 3.5979 3.99953.7553 3.4551 3.0495 3.9492 3.21203.8948 3.0811 3.5667 3.2888 3.49843.2861 3.8511 3.1219 3.8888 3.29053.2512 3.5620 3.5221 3.1016 3.67283.9327 3.3193 3.1171 3.0653 3.95803.1310 3.3749 3.7699 3.2343 3.76663.9408 3.8678 3.3751 3.9331 3.66613.7019 3.3722 3.8234 3.0631 3.13093.8477 3.0737 3.0466 3.2642 3.09547.求A和B的上三角矩阵、下三角矩阵、逆矩阵、行列式的值、秩、范数、条件数、迹A =23.0000 10.0000 -0.7780 041.0000 -45.0000 65.0000 5.000032.0000 5.0000 0 32.00006.0000 -9.5400 54.0000 3.1400>> B=[0.43,43,2;-8.9,4,21]B =0.4300 43.0000 2.0000-8.9000 4.0000 21.0000triu(A)ans =23.0000 10.0000 -0.7780 00 -45.0000 65.0000 5.00000 0 0 32.00000 0 0 3.1400tril(A)ans =23.0000 0 0 041.0000 -45.0000 0 032.0000 5.0000 0 06.0000 -9.5400 54.0000 3.1400>> inv(A)ans =0.0307 0.0090 -0.0004 -0.01040.0297 -0.0210 0.0008 0.02570.0039 -0.0044 -0.0017 0.0238-0.0353 -0.0057 0.0315 0.0064>> Pinv(B)Warning: Could not find an exact (case-sensitive) match for 'Pinv'. C:\MATLAB701\toolbox\matlab\matfun\pinv.m is a case-insensitive match and will be used instead. You can improve the performance of your code by using exact name matches and we therefore recommend that you update your usage accordingly. Alternatively, you can disable this warning using warning('off','MATLAB:dispatcher:InexactMatch').ans =0.0022 -0.01750.0234 -0.0017-0.0035 0.0405>> det(A)ans =1.8965e+006>> rank(A)ans =4>> norm(A,1)ans =119.7780>> cond(A,1)ans =11.9307>> trace(A)ans =-18.8600>>8.A=[34,NaN,Inf,-Inf,-pi,eps,0],对A求all、any、isnan、isinf、isfinite函数的值A=[34,NaN,Inf,-Inf,-pi,eps,0]A =34.0000 NaN Inf -Inf -3.1416 0.0000 0>> all(A)ans =>> any(A)ans =1>> isnan(A)ans =0 1 0 0 0 0 0>> isinf(A)ans =0 0 1 1 0 0 0>> isfinite(A)ans =1 0 0 0 1 1 1>>9.建立结构矩阵,并索引其中的元素a.x1=10; a.x2='abc'; a(2).x1=12; a(2).x2='wang';10.建立单元矩阵,并索引其中的元素。
MATLAB程序设计实验报告MATLAB 程序设计实验报告一、实验目的1.通过实验熟悉MATLAB仿真软件的使用方法;2.掌握用MATLAB寸连续信号时域分析、频域分析和s域分析的方法,利用绘图命令绘制出典型信号的波形,了解这些信号的基本特征;3.掌握用MATLAB寸离散信号时域分析、频域分析和z域分析的方法,利用绘图命令绘制出典型信号的波形,了解这些信号的基本特征;4.通过绘制信号运算结果的波形,了解这些信号运算寸信号所起的作用。
二、实验设备1. 计算机2. MATLAB R2007a 仿真软件三、实验原理寸系统的时域分析信号的时域运算包括信号的相加、相乘,信号的时域变换包括信号的平移、反折、倒相及信号的尺度变换。
(1 )信号的相加和相乘:已知信号f1 (t)和f2 (t),信号相加和相乘记为f(t) f1(t) f2(t);f(t) f1(t) f2(t)。
(2)信号的微分和积分:寸于连续时间信号,其微分运算是用diff 函数来完成的,其语句格式为:diff(function, 'variable ',n) ,其中function 表示需要进行求导运算的信号,或者被赋值的符号表达式;variable 为求导运算的独立变量;n 为求导的阶数,默认值为求一阶导数。
连续信号的积分运算用int 函数来完成,语句格式为:diff(function, ' variable ' ,a,b) ,其中function 表示需要进行被积信号,或者被赋值的符号表达式;variable 为求导运算的独立变量;a,b 为积分上、下限,a和b省略时为求不定积分。
(3)信号的平移、翻转和尺度变换信号的平移包含信号的左移与右移,信号的翻转包含信号的倒相与折叠,平移和翻转信号不会改变信号f(t)的面积和能量。
信号的尺度变换是对信号f(t)在时间轴上的变化,可使信号压缩或扩展。
f(at)将原波形压缩a倍,f(t/a)将原波形扩大a倍。
实验二M A T L A B程序设计含实验报告精编版 MQS system office room 【MQS16H-TTMS2A-MQSS8Q8-MQSH16898】
实验二MATLAB 程序设计
一、 实验目的
1.掌握利用if 语句实现选择结构的方法。
2.掌握利用switch 语句实现多分支选择结构的方法。
3.掌握利用for 语句实现循环结构的方法。
4.掌握利用while 语句实现循环结构的方法。
5.掌握MATLAB 函数的编写及调试方法。
二、 实验的设备及条件
计算机一台(带有以上的软件环境)。
M 文件的编写:
启动MATLAB 后,点击File|New|M-File ,启动MATLAB 的程序编辑及调试器(Editor/Debugger ),编辑以下程序,点击File|Save 保存程序,注意文件名最好用英文字符。
点击Debug|Run 运行程序,在命令窗口查看运行结果,程序如有错误则改正
三、 实验内容
1.编写求解方程02=++c bx ax 的根的函数(这个方程不一定为一元二次方程,因c b a 、、的不同取值而定),这里应根据c b a 、、的不同取值分别处理,有输入参数提示,当0~,0,0===c b a 时应提示“为恒不等式!”。
并输入几组典型值加以检验。
(提示:提示输入使用input 函数)
2.输入一个百分制成绩,要求输出成绩等级A+、A 、B 、C 、D 、E 。
其中100分为A+,90分~99分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。
要求:(1)用switch 语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
(提示:注意单元矩阵的用法)
3.数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。
重复此过程,最终得到的结果为1。
如:
2?1
3?10?5?16?8?4?2?1
6?3?10?5?16?8?4?2?1
运行下面的程序,按程序提示输入n=1,2,3,5,7等数来验证这一结论。
请为关键的Matlab 语句填写上相关注释,说明其含义或功能。
4.编写一个函数,计算下面函数的值,给出标量x 的值,调用该函数后,返回y 的值。
function[y]=myfun1(x)
选择一些数据测试你编写的函数。
5.编写一个函数求向量x 中元素的平均值、最大值、最小值、均方根值。
function[m_x,max_x,min_x,rms_x]=myfun2(x)方均根值(RootMeanSquare)的计算公式为:
用下面数据测试你写的函数:
(1)x=sin(0::6*pi)
(2)x=rand(1,200),得到的x 为200个(0,1)之间均匀分布的随机数。
6.根据22222
1......3121116n
++++=π,求π的近似值。
当n 分别取100、1000、10000时,结果是多少?
思考题:
有一分数序列:
编写一段程序,求前16项的和。
四、实验报告要求(包含预习报告要求和最终报告要求)
1.实验名称
2.实验目的
3.实验设备及条件
4.实验内容及要求
5.实验程序设计
指程序代码。
6.实验结果及结果分析
实验结果要求必须客观,
结果分析是对实验结果的理论评判。
7.实验中出现的问题及解决方法
8.思考题的回答 四、 实验报告的提交方式
Word 文档,命名方式:实验号_你的学号_姓名
例如本次实验:实验一_000000001_张三.doc
(信息101提交报告邮箱):E_mail:
(网络工程101提交作业邮箱):E_mail:M (注意网络班的M 是大写的)
下一次课前提交,过期不收!
五、参考文献
参考教材和Matlab帮助文件。
1.实验名称
MATLAB程序设计
2.实验目的
1.掌握利用if语句实现选择结构的方法。
2.掌握利用switch语句实现多分支选择结构的方法。
3.掌握利用for语句实现循环结构的方法。
4.掌握利用while语句实现循环结构的方法。
5.掌握MATLAB函数的编写及调试方法。
3.实验设备及条件
计算机一台(带有以上的软件环境)。
4.实验内容及要求
把实验内容的应用题,用MATLAB的语法编写出来,并运行成功,注意题与题之间用相应注释分割。
5.实验程序设计
6.实验结果及结果分析
7.实验中出现的问题及解决方法
对函数的嵌套关系理解混乱
解决:反复尝试,得出正确的嵌套关系。
'^'没有运行成功。
解决:需要加符号'.',不然无法得出预期结果8.思考题的回答。