实验报告: 用户自定义函数
一、 实验目的:
(1) 掌握函数文件结构.
(2) 掌握按值传递方案.
(3) 掌握计划的不同数量的输入和输出 .
二、 实验内容:
(1) 将上面计算Fibnacci的程序改成一个子程序,并编写一个主程序,结合上面的循环语句计算n从3到5情况下的值。
(2) 最小值和最大值的一个函数。写一个函数, 试图找到最大值与最小值的任意函数 f(x)
在一定范围内。函数的评估应该传递给函数作为调用参数。这个函数应该有下面的输入参数.
first_value --- 第一个 x 的值来搜索
last_value --- 最后的 x 值来搜索
num_steps --- 这个数量的步骤包括在搜索
func --- 函数的名称来搜索功能应该有下面的输出参数.
xmin --- 找 x 的最大值
min_value --- 找到 f(x) 最小值
xmax --- 找 x 的最大值
max_value --- 找到 f(x) 最小值
三、 设计思路:
1. 实验一: 将上面计算Fibnacci的程序改成一个子程序,并编写一个主程序,结合上面的循环语句计算n从3到5情况下的值。
1 ).主程序调用3,4,5
2. 实验二: 计算函数的最大值和最小值
1 ).需要用户输入的数据:
first_value --x 的第一个值
last_value --x 的最后一个值
num_steps --x 取值的步长
func --所要求的值的函数名
2). 可以得到自 变量的向量为 ss = first:numstep:last;
由 tt = feval(func,ss); 得到函数值的向量。
3). 调用 min, max 函数, 可以得到函数的最小值和最大值。
4). 通过循环, 分支语句, 找到当函数取得最小值和最大值时的自变量的值。
四、 实验程序和结果
1) . 实验程序:
clear
clc
for q1=1
for N=3:5
a=Fib(N);
end
end
function a=Fib(N)
a(1)=1; a(2)=1;
k=2;
while k<=N-1
a(k+1)=a(k)+a(k-1);
k=k+1;
end
fprintf('第%d个斐波那契数列为:\n',N)
disp(a(N))
end
第3个斐波那契数列为:
2
第4个斐波那契数列为:
3
第5个斐波那契数列为:
5
2. 实验二: 计算函数的最大值和最小值
1) . 实验程序:
for i=1 %函数假设是y=x^2
x=-10:0.1:10;
y=x.^2;
[max_value,min_value]=maxmin(y);
[max_value,min_value]
end
function [max_value,min_value]=maxmin(y)
max_value=max(y);
min_value=min(y);
end
ans =
100 0