"Matlab 程序设计 2"
Matlab 程序设计 2 是一门实验课,旨在提高学生对 Matlab 编程语言的掌握和应用能力。在本实验中,我们将学习 Matlab 的基本语法、数据类型、变量、运算符、控制结构、函数等内容,并通过实践来巩固这些知识点。
实验目的
1. 掌握建立和执行 M 文件的方法;
2. 掌握实现选择结构的方法;
3. 掌握实现循环结构的方法;
4. 熟悉利用向量运算来代替循环操作的方法。
实验内容
1. 求 π 的近似值
我们将使用 Matlab 来计算 π 的近似值。我们可以使用循环结构和向量运算来实现这个任务。我们定义一个函数 `sy5_1_1`,使用循环结构来计算 π 的近似值:
```Matlab
function [y]=sy5_1_1(n)
y=0;
for i=1:n;
y=y+1/i/i;
end
```
然后,我们定义一个函数 `sy5_1_2`,使用向量运算来计算 π 的近似值:
```Matlab
function [y]=sy5_1_2(n)
i=1:n;
f=1./i.^2;
y=sum(f);
```
我们可以使用这两个函数来计算 π 的近似值,当 n 分别取 100、1000、10000 时,结果分别是:
```Matlab
>> sy5_1_2(100)
ans = 1.6350
>> sy5_1_2(1000)
ans = 1.6439
>> sy5_1_2(10000)
ans = 1.6448
```
2..Seek y < 3 时的最大 n 值和对应的 y 值
我们可以使用 Matlab 来计算 y < 3 时的最大 n 值和对应的 y 值。我们定义一个函数 `sy5_2`:
```Matlab
function[]=sy5_2(n)
y=0;
i=1;
while (y<3)
f=1/(2*i-1);
y=y+f;
i=i+1;
end
y=y-f;
i=i-1;
y
i
```
我们可以使用这个函数来计算 y < 3 时的最大 n 值和对应的 y 值:
```Matlab
>> sy5_2
y = 2.9944
i = 57
```
3.递归调用实现函数
我们可以使用 Matlab 来定义一个递归函数来计算一个数列的和。我们定义一个函数 `sy5_3`:
```Matlab
function[y]=sy5_3(n,m)
y=0;
for i=1:n;
a=i.^m;
y=y+a;
end
```
我们可以使用这个函数来计算一个数列的和:
```Matlab
>> y=sy5_3(100,1)+sy5_3(50,2)+sy5_3(10,-1)
y = 4.7978e+004
```
4.计算序列的最大值、最小值、各数之和和正数、零、负数的个数
我们可以使用 Matlab 来计算一个序列的最大值、最小值、各数之和和正数、零、负数的个数。我们定义一个函数 `fun`:
```Matlab
function y = fun(n)
if n==1
y = 1;
elseif n==2
y = 0;
elseif n==3
y = 1;
else
a = zeros(1,n);
a(1:3) = [1,0,1];
for i = 4:n
a(i) = a(i-1) + a(i-2);
end
y = a(n);
end
```
我们可以使用这个函数来计算一个序列的最大值、最小值、各数之和和正数、零、负数的个数。
本实验课旨在提高学生对 Matlab 编程语言的掌握和应用能力,通过实践来巩固这些知识点。