《Matlab语言》实验四_matlab语言实验五

其他范文 时间:2020-02-27 10:14:53 收藏本文下载本文
【www.daodoc.com - 其他范文】

《Matlab语言》实验四由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“matlab语言实验五”。

实验

四、Matlab的程序设计

(一)实验目的1.掌握利用if语句实现选择结构的方法。

2.掌握利用switch语句实现多分支选择结构的方法。3.掌握利用for语句实现循环结构的方法。4.掌握利用while语句实现循环结构的方法。5.掌握Matlab函数的编写及调试方法。

(二)实验环境

1.计算机

2.MATLAB7.0集成环境

(三)实验内容

1、编写一个函数,计算下面函数的值,给出标量x的值,调用该函数后,返回y的值。function y=myfun1(x)sinx,y(x)x,x6,x00x3x3

选择一些数据测试你编写的函数。function [y]=myfun1(x)if x

y=sin(x);elseif x>0&x3 y=-x+6;End 结果: >> x=5;>> [y]=myfun1(x)y = 12、编写一个函数求向量x中元素的平均值、最大值、最小值、均方根值。

function [m_x,max_x,min_x,rms_x]=myfun2(x)方均根值(Root Mean Square)的计算公式为:

rms1NNi1xi2

用下面数据测试你写的函数:

function [m_x,max_x,min_x,rms_x]=myfun2(x)%求平均值

sum_x=sum(x);%向量元素求和

[m,n]=size(x);%最好用n=length(x);m_x=sum_x/n;

%求最大值 采用逐个比较方式 if x(1)>x(2)max_x=x(1);else

max_x=x(2);end for k=3:n

if max_x

else

max_x=max_x;%可省略

end end

%求最小值

if x(1)

min_x=x(2);end

for k=3:n

if min_x>x(k)

min_x=x(k);

else

min_x=min_x;%可省略

end end

%求均方根值 sum_x2=0;for k=1:n

sum_x2=sum_x2+x(k).^2;rms_x=sqrt(sum_x2/n);end m_x;max_x;

min_x;

rms_x;%按照函数值行(1)x=sin(0:0.01:6*pi)运行结果:>> x=sin(0:0.01:6*pi);>> [m_x,max_x,min_x,rms_x]=myfun2(x)m_x =-1.1256e-007 max_x = 1.0000 min_x =-1.0000 rms_x = 0.7071(2)x=rand(1,200),得到的x为200个(0,1)之间均匀分布的随机数。>> x=rand(1,200);>> [m_x,max_x,min_x,rms_x]=myfun2(x)m_x = 0.5231 max_x = 0.9994 min_x = 0.0056 rms_x = 0.58693、编写求解方程axbxc0的根的函数(这个方程不一定为一元二次方程,因a、b、c的不同取值而定),这里应根据a、b、c的不同取值分别处理,有输入参数提示,当a0,b0,c~0时应提示“为恒不等式!”。并输入几组典型值加以检验。2M文件: disp('关于方程ax^2+bx+c=0')a=input('请输入系数a=');b=input(' b=');c=input(' c=');if a==0&&b==0

if c==0

disp('解为全体实数');

else

disp('为恒不等式!');

end else P=[a,b,c];

x=roots(P)end

disp('关于方程ax^2+bx+c=0')a=input('请输入系数a=');b=input(' b=');c=input(' c=');if a==0&&b==0

if c==0

disp('解为全体实数');

else

disp('为恒不等式!');

end else P=[a,b,c];x=roots(P)end

工作空间测试: 关于方程ax^2+bx+c=0 请输入系数a=2 b=4 c=6 x =-1.0000 + 1.4142i-1.0000-1.4142i4、输入一个百分制成绩,要求输出成绩等级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)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。

g=input('请输入成绩');

if g100

disp('错误,输入的成绩应为0~100间的数')

else

g=fix(g/10);

switch g

case {10}

disp('A+');

case {9} disp('A');

case {8} disp('B');

case {7}

disp('C');

case {6}

disp('D')

otherwise

disp('E');

end5、利用for循环语句编写计算n!的函数程序,取n分别为-89、0、3、5、10验证其正确性(输入n为负数时输出出错信息)。n=input('请输入n=');

if n

disp('错误,n取值必须为正数');

else y=1;

for i=1:n y=y*i;

end

disp('n!=');disp(y)

测试: 请输入n=6 n!= 720

6、Fibonacci数组的元素满足Fibonacci规则:现要求该数组中第一个大于10000的元素。

a(1)=1;a(2)=1;

k=3;

a(k)=a(k-1)+a(k-2);

while a(k)

a(k)=a(k-1)+a(k-2);

测试: >> ak=a(k)ak =

ak2akak1,(k1,2,);且a1a21。10946 

27、根据6112122132......1n,求的近似值。

2要求:(1)分别采用for循环结构以及向量法来编程实现,比较两种方法程序运行时间;(2)当n分别取100、1000、10000时,结果是多少? n=[100 1000 10000];

for j=1:3 y=0;k=n(j);

for i=1:k y=y+1/i/i;

end

pai=sqrt(6*y);disp('n=');

disp(n(j));

disp('π的近似值为');

disp(pai);结果: n= 100 π的近似值为 3.1321 n= 1000 π的近似值为 3.1406 n= 10000 π的近似值为 3.1415

(四)实验要求

1、熟练操作MATLAB7.0运行环境;

2、自主编写程序,必要时参考相关资料;

3、实验前应写出程序大致框架或完整的程序代码;

4、完成实验报告。

(五)实验报告要求

见实验一。

思考题

1、M文件分为哪两类?这两类M文件的区别是什么? 答:分为命令文件和函数文件

1)函数文件一般都要带参数 , 都要有返回结果 , 而命令文件没有参数与返回结果 2)函数文件的变量是局部变量 , 运行期间有效 , 运行完毕就自动被清除 , 而命令文件的变量是全局变量 , 执

行完毕后仍被保存在内存中

3)函数文件要定义函数名 , 且保存该函数文件的文件名必须是函数名.m。M 函数文件可以有多个因变量和多

个自变量 , 当有多个因变量时用[ ] 括起来。

2、有一分数序列:

1, 3, 5, 8, 1321

22358, 13,编写一段程序,求前16项的和。

a=2.0;b=1.0;c=a/b;

for 1:16 {b=a;a=a+b;

d=(a+b)/a;c=c+d;}

 

下载《Matlab语言》实验四word格式文档
下载《Matlab语言》实验四.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

    热门文章
      整站推荐
        点击下载本文