实验七 函数文件
一、实验目的
1、理解函数文件的概念。
2、掌握定义和调用MATLAB函数的方法。
二、实验内容(选作2题)
1、定义一个函数文件,求给定复数的指数、对数、正弦和余弦,并在命令文件中调用该函数文件。 程序设计: M文件:
function f(x) e=exp(x) ln=log(x) s=sin(x) c=cos(x) end
运行结果: >> f(2i) e =
-0.4161 + 0.9093i ln =
0.6931 + 1.5708i s =
0 + 3.6269i c =
3.7622
2、一个物理系统可用下列方程组来表示:
?m1cos??msin??1?0??0?m10m20?sin?cos??sin??cos?0??a1??0??a??mg?0???2???1?0??N1??0??????1??N2??m2g?
从键盘输入m1、m2和?的值,求a1、a2、N1、N2的值。其中g取’ 9.8,输入?时以角度为单位。
要求:定义一个求解线性方程组AX=B的函数文件,然后在命令文件中调用该函数文件。 程序设计: 函数文件in.m:
function [a1,a2,N1,N2]=in(m1,m2,t) g=9.8;
A=[m1*cos(t) -m1 -sin(t) 0;m1*sin(t) 0 cos(t) 0;0 m2 -sin(t) 0;0 0 -cos(t) 1];
C=[0;m1*g;0;m2*g]; B=inv(A)*C; a1=B(1); a2=B(2); N1=B(3); N2=B(4); end
调用in.m的命令文件: >> m1=1;m2=2;t=30*pi/180; >> [a1,a2,N1,N2]=in(m1,m2,t)
运行结果: a1 =
6.5333 a2 =
1.8860 N1 =
7.5440 N2 =
26.1333
3、一个自然数是素数,且它的数字位置经过任意对换后仍为素数,则称是绝对素数。例如13是绝对素数。试求所有两位绝对素数。 要求:定义一个判断素数的函数文件。 函数文件: for y=10:99
if isprime(y) a=rem(y,10); b=fix(y/10); c=10*a+b;
if isprime(c) disp(y) end end end
运行结果: >> 11 13 17 31 37 71 73 79 97
f?x??14、设
?x?2?2?0.1?1?x?3?4?0.01,编写一个MATLAB函数文件fx.m,使得
调用f(x)时,x可用矩阵代入,得出的f(x)为同阶矩阵。 程序设计:
function y=fx(x)
y=1./[(x-2).^2+0.1]+1./[(x-3).^4+0.01] end
运行结果:
>> x=[1 2 3 4 5] x =
1 2 3 4 5
>> fx(x)=1./[(x-2).^2+0.1]+1./[(x-3).^4+0.01] fx =
0.9716 10.9901 100.9091 1.2340 0.1724
y?f?40?5、已知f?30??f?20?
2(1)当f(n)=n+10ln
?n?5?时,求y的值。
程序设计: 函数文件fn.m: function x=fn(n) x=n+10*log(n^2+5) end
调用fn.m的命令文件: y=fn(40)/(fn(30)+fn(20))
运行结果: >>y = 0.6390 (2)当
f?n??1?2?2?3?3?4?????n?n?1?时,求y的值。
程序设计: 函数文件fn.m: function x=fn(n) if n<=0 x=0; else
x=n*(n+1)+fn(n-1); end end
调用fn.m的命令文件: y=fn(40)/(fn(30)+fn(20))
运行结果: y =
1.7662
实验八,九 MATLAB程序设计(循环、选择)
一、实验目的
1、掌握利用if语句实现选择结构的方法;
2、掌握利用switch语句实现多分支选择结构的方法;
3、掌握循环结构的程序书写方法。
二、实验内容
1、硅谷公司员工的工资计算方法如下:
(1)工作时数超过120小时者,超过部分加发15%; (2)工作时数低于60小时者,扣发700元; (3)其余按每小时84元计发。
编程按输入的工号和该号员工的工作时数,计算应发工资。 function gongzi(x,y,a) clear;
x=input('请输入工号:');
a=input('请输入工作时长(小时):'); if a>120
y=84*120+(a-120)*1.15*84; else if a<60
y=84*a-700; else y=84*a; end end
disp(['工号为',num2str(x),'的员工工资为:',num2str(y),'元']); end
2、用switch…case语句得出各月份的季节(如3,4,5月输出为春季)。 请输入月份 function jijie(x) clear;
x=input('请输入月份:');