实验二MATLAB程序设计含实验报告精编版
MATLAB实验报告

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进行最小二乘法计算。
实验方法:基于Matlab的线性代数计算库,进行最小二乘法的计算。
实验结果:成功掌握最小二乘法的计算方法,并了解其在实际应用中的作用。
实验六:常微分方程实验目的:了解ODE的基本概念和解法,并通过Matlab进行计算。
实验内容:利用Matlab求解ODE的一阶微分方程组、变系数ODE、高阶ODE等问题。
实验方法:基于Matlab的ODE工具箱,进行ODE求解。
实验结果:深入理解ODE的基本概念和解法,掌握多种ODE求解方法,熟练掌握Matlab的ODE求解工具箱的使用方法。
总结在Matlab环境下进行程序设计实验,使我对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 值)。
实验4 Matlab程序设计2实验报告

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程序设计含实验报告

实验二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

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进行数据处理、图像处理、信号处理等工程应用。
通过本报告的学习,读者将能够掌握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实验报告二

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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二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.思考题的回答。