matlab实验五报告

时间:2024.5.2

实验五 MATLAB程序设计

实验者:祝松 年级:机设092 学号:09405701002

一、实验目的

掌握 MATLAB 程序设计的主要方法,熟练编写 MATLAB 函数。

二、实验内容

(1) M 文件的编辑。

(2)程序流程控制结构。

(3)子函数调用和参数传递。

(4)局部变量和全局变量。

三、实验步骤

1. M 文件的编辑

选择 MATLAB 的菜单 File|New|M-file ,打开新的 M 文件进行编辑,然后输入以下内容,并保存文件名为 exp1.m 。

% M 脚本文件

% 功能:计算自然数列 1 ~ 100 的数列和

s=0;

for n=1:100

s=s+n;

end

s

保存好文件后,在命令窗口输入 exp1 即可运行该脚本文件,注意观察变量空间。接着创建 M 函数文件,然后输入以下内容,并保存文件名为 exp2.m 。

% 这是 M 函数文件

% 功能:计算自然数列 1 ~ x 的数列和

function s=exp2(x)

s=0;

for n=1:x

s=s+n;

end

保存好文件后,在命令窗口输入

>>clear

>>s=exp2(100)

以open命令可以打开M文件进行修改

>>open conv % 打开 conv 函数

2. 程序流程控制结构

1) for 循环结构

for n=1:10

n

end

另一种形式的 for 循环:

n=10:-1:5

for i=n % 循环的次数为向量 n 的列数

i

end

2) while 循环结构

在命令窗口输入:

>>clear,clc; x=1;

while 1

x=x*2

end

将会看到 MATLAB 进入死循环,因为 while 判断的值恒为真,这时须按下 Ctrl + C 键来中断运行,并且可看到 x 的值为无穷大。

练习: (1) 请把 exp2.m 函数文件用 while 循环改写。

(2) 用 π /4 ≈ 1 - 1/3+1/5 - 1/7+ … 公式求 π 的近似值,直到最后一项的绝对值小于10?6为止,试编写其 M 脚本文件。

3) if-else-end 分支结构

if-else-end 分支有如下 3 种形式。

(a) if 表达式

语句组 1

end

(b) if表达式

语句组 1

else

语句组 2

end

(c) if 表达式 A

语句组 1

elseif 表达式 B

语句组 2

elseif

语句组 3

……

else

语句组 n

end

4) switch-case 结构

创建 M 脚本文件 exp3.m ,输入以下内容并在命令窗口中运行。

% 功能:判断键盘输入的数是奇数还是偶数

n=input('n=');

if isempty(n)

error('please input n')

end

switch mod(n,2)

case 1

A=' 奇数 '

case 0

A=' 偶数 '

end

3. 子函数和参数传递

有一个函数 g ( x ) =?n!( x = 1,2,3 … ) ,试编写实现该函数的函数文件。

n?1x

function g=exp4(x) % 主函数

g=0;

for n=1:x

g=g+fact(n); % 调用子函数

end

function y=fact(k) % 子函数

y=1;

for i=1:k

y=y*i;

end

输入参数可以由函数 nargin 计算,下面的例子 sinplot2( ) ,当只输入一个参数 w 时,sinplot2( ) 函数会给 p 赋予默认值 0 。

function y=sinplot (w,p)

if nargin>2

erro(‘too many input’)

end

if nargin==1 p=0;

end

x=linspace(0,2*pi,500);

z=sin(x.*w+p);

练习: (1) 编写求矩形面积函数 rect ,当没有输入参数时,显示提示信息;当只输入一个参数时,则以该参数作为正方形的边长计算其面积;当有两个参数时,则以这两个参 数为长和宽计算其面积。

(2) 编写一个字符串加密函数 nch=my_code( ch , x) ,其中 ch 是字符串参数, x 为整 数;加密方法是:把 ch 的每一个字符的 ASCII 码值加上 x ,得到的即为加密后的新 的字符串 nch 。由于可显示 ASCII 码值是有范围的 (32 , 126) ,因此当得到的 ASCII码值大于 126 时,需要减去 93 。同理,再编写一个解码函数 nch=my_dcode( ch , x) 。 提示: char(32:126) 可获得 ASCII 码值为 32 ~ 126 的字符。

4. 局部变量和全局变量

自程序执行开始到退出 MATLAB ,始终存放在工作空间,可被任何命令文件和数据文件存取或修改的变量即是全局变量,全局变量可用于函数之间传递参数,全局变量用关键 字 global 声明。编写一个求和的函数文件,其名为 summ.m 。程序如下:

function s=summ

global BEG END

k=BEG:END;

s=sum(k);

再编写调用 M 脚本文件 use.m 来调用 summ.m 函数文件,它们之间通过全局变量传递参数。

程序如下:

global BEG END

BEG=1;

END=10;

s1=summ; BEG=1;

END=20;

s2=summ;


第二篇:实验五 欧拉法Matlab实验报告


北京理工大学珠海学院实验报告

ZHUHAI CAMPAUS OF BEIJING INSTITUTE OF TECHNOLOGY

班级2012电气2班 学号120109021010  姓名  陈冲  指导教师  张凯  成绩

实验题目 (实验五) 欧拉法     实验地点及时间 JD501  2014/1/2(6-7节)

一、实验目的

1.掌握用程序语言来编辑函数。

2.学会用MATLAB编写Euler.m以及TranEuler.m函数。

二、实验环境

Matlab软件

三、实验内容

1、以书中第124页题目11为例编辑程序来实现计算结果。

2、使用MATLAB进行编写:

第一步:编写Euler.m函数,代码如下

编写TranEuler.m函数,代码如下

第二步:利用上述函数编辑命令:(可见实验结果中的截图)

在此之前先建立一个名为f.m的M文件,代码如下

              function z=f(x);

              z=8-3y;

再编辑代码:

得到了欧拉法的结果:y(0.4)=2.47838030901267

编辑另一段命令:

得到改进欧拉法的结果:y(0.4)=2.46543714659780

在此基础上,我还编辑龙格库达的命令窗口代码,如下:

四、实验题目

  用欧拉法和改进欧拉法求解初值问题,试取步长计算的近似值。

五、实验结果                      

  

六、总结

通过这次实验我掌握了将得到的解进一步精确,而且要学会比较这几种方法的精确性,显然,四阶龙格库达比改进欧拉发精确,改进欧拉发比欧拉法精确。

实验难度不大,要比较n的取值不同,产生的影响不同。

…….

更多相关推荐:
matlab实验报告

MATLAB教程及实训实验报告班级:10级专升本学号:姓名:实验1熟悉matlab的开发环境及矩阵操作一、实验的教学目标通过本次实验使学生熟悉MATLAB7.0的开发环境,熟悉MATLAB工作界面的多个常用窗口…

matlab基本操作实验报告

实验一matlab基本操作一实验目的熟悉matlab的安装与启动熟悉matlab用户界面熟悉matlab功能建模元素熟悉matlab优化建模过程二实验设备与仪器1微机2matlab仿真软件三实验步骤1了解mat...

matlab实验报告

课程设计说明书(论文)题目带限数字基带传输系统的仿真课程名称Matlab通信仿真设计专业通信工程班级1203学生姓名学号指导教师设计起止时间:20##年12月18日至20##年12月25日一、课程设计目的和要求…

matlab音乐处理合成实验报告

MATLAB高级编程与工程应用语音合成综合实验姓名班级学号日期121简单的合成音乐1请根据东方红片断的简谱和十二平均律计算出该片断中各个乐音的频率在MATLAB中生成幅度为1抽样频率为8kHz的正弦信号表示这些...

东南大学几何与代数matlab实验报告

数学实验报告学号姓名吴雪松得分实验1求解线性方程组实验内容用MATLAB求解如下线性方程组Axb其中5100A00006510000006510000006510000006510000006510000006...

matlab实验报告

数学实验报告班级学号姓名实验序号1日期年月日实验名称特殊函数与图形问题背景描述绘图是数学中的一种重要手段借助图形可以使抽象的对象得到明白直观的体现如函数的性质等同时借助直观的图形使初学者更容易接受新知识激发学习...

Matlab实验报告一

数学与信息科学系实验报告实验名称程序设计所属课程数学软件与实验实验类型综合型实验专业信息与计算科学班级20xx级1班学号姓名指导教师1234567

matlab实验报告

南京工程学院课程设计说明书论文题目课程名称院系部中心专业班级学生姓名学号设计地点指导教师设计起止时间20xx年12月8日至20xx年12月12日一课程设计目的和要求1综合运用信号与线性系统通信原理以及matla...

matlab实验报告

重庆交通大学学生实验报告实验课程名称专业综合实验开课实验室交通运输工程实验教学中心学院交通运输年级二年级专业班交通运输1班学生姓名学号63120xx20开课时间20xx至20xx学年第2学期

matlab实验报告格式

数学实验报告实验序号:1日期:20XX年10月20日班级姓名学号实验名称:特殊函数与图形问题背景描述:绘图是数学中的一种重要手段,借助图形,可以使抽象的对象得到明白直观的体现,如函数的性质等。同时,借助直观的图…

matlab实验报告

MATLAB实验报告1在区间11上分别取n1020用两组选中节点对龙格函数fx插值及三次样条插值对每个n值分别画出插值函数及fx的图形解n10在matlab命令窗口中键入gtgtx1021y1125x2y1in...

matlab实验报告

MATLAB实验报告实验一MATLAB语言平台与SIMULINK工具箱一目的与任务1学习了解MATLAB语言环境2练习MATLAB命令4掌握SIMULINK工具箱的应用二内容与要求1实验内容1学习了解MATLA...

matlab实验报告(13篇)