《Matlab语言》实验四
第一篇:《Matlab语言》实验四
实验
四、Matlab的程序设计
(一)实验目的
1.掌握利用if语句实现选择结构的方法。
2.掌握利用switch语句实现多分支选择结构的方法。3.掌握利用for语句实现循环结构的方法。4.掌握利用while语句实现循环结构的方法。5.掌握Matlab函数的编写及调试方法。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<=0
y=sin(x);elseif x>0&x<=3 y=x;elseif x>3 y=-x+6;End 结果: >> x=5;>> [y]=myfun1(x)y = 1
2、编写一个函数求向量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.000
0 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.5869
3、编写求解方程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.4142i
4、输入一个百分制成绩,要求输出成绩等级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 g<0||g>100
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<0
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)<10000 k=k+1;
a(k)=a(k-1)+a(k-2);
测试: >> ak=a(k)ak =
ak 2 ak ak 1,(k 1,2, );且a1 a2 1。10946
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论