数学实验练习六:函数
一、1)写一个 MATLAB 函数 来计算下列级数:
f(n) = 4*(1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + ...)
其中 n 为函数的输入,代表上述级数的项数,级数和 f(n) 则是函数的输出。
function piFun01(n)
s=0;
for i=1:n
s=s+4*((-1)^(i+1))/(2*i-1) ;
end
disp(['f(',num2str(n),')=',num2str(s)]);
>> piFun01(5)
f(5)=
>> piFun01(6)
f(6)=
2)使用 tic 和 toc 指令来测量 piFun01(100000) 的计算时间。如果你不知道如何使用这两个指令,请使用 help tic 及 help toc 来查出它们的用法。我的旧计算机是 Pentium 450MHz,所得的计算时间约为 2 秒。请说明你的计算机规格以及其计算时间。
%jisuanpiFun01(n)
n=input('请输入 n : ');
tic;
piFun01(n);
toc;
>> jisuanpiFun01
请输入 n : 100000
Elapsed time is seconds.
我使用的计算机为: Intel(R) Core(TM) i5-2400 CPU @ 秒
二、写一个 MATLAB 的递归函数 来计算 Fibonacci 数列,其定义如下:
fibo(n+2) = fibo(n+1)+fibo(n)
此数列的启始条件如下:
fibo(1) = 0, fibo(2) = 1.
a) fibo(25) 的返回的值是多少?
function f=fibo(n)
if n==1
f=0;
elseif n==2
f=1;
else
f=fibo(n-1)+fibo(n-2);
end
f=fibo(25)
f =
46368
b) 使用 tic 和 toc 指令来测量 fibo(25) 的计算时间。我的计算机是 Pentium 2GHz,所得的计算时间约为 秒。请说明你的计算机规格以及其计算时间。
%jisuanfibo(n)
n=input('请输入 n : ');
tic;
fibo(n);
toc;
>> jisuanfibo
请输入 n : 25
Elapsed time is seconds.
我使用的计算机为: Intel(R) Core(TM) i5-2400 CPU @ 秒
c) 你们已学过离散数学,知道 Fibonacci 数列的第 n 项可以直接表示成 fibo(n)={[(1+a)/2]^(n-1)-[(1-a)/2]^(n-1)}/a
其中 a 是 5 的平方根。写利用上式一个 MATLAB 的非递归函数 来计算 Fibonacci 数列。
func
Matlab实验6函数及其调用 来自淘豆网m.daumloan.com转载请标明出处.