### MATLAB实验六知识点详解
#### 一、实验目标与背景
本次实验的主要目的是帮助学习者理解和掌握MATLAB中函数文件的基本概念以及如何定义和调用MATLAB函数。通过实际的操作练习,加深对函数文件的理解,并能够灵活运用这些知识解决实际问题。
#### 二、实验具体内容分析
##### 1. 定义并调用函数文件进行数学运算
**函数文件:** `Untitled2`
- **函数定义**: `function[a,b,c,d]=Untitled2(x)`
- **输入参数**:
- `x`: 输入的复数值
- **输出参数**:
- `a`: 输入复数的指数值
- `b`: 输入复数的自然对数值
- `c`: 输入复数的正弦值
- `d`: 输入复数的余弦值
**函数实现**:
```matlab
function[a,b,c,d]=Untitled2(x)
a=exp(x);
b=log(x);
c=sin(x);
d=cos(x);
end
```
- **脚本文件调用**:
- 输入: `x=input('x=')`
- 调用: `[a,b,c,d]=Untitled2(x)`
**运行示例**:
```matlab
>> Untitled4
x=20
a=
4.8517e+08
b=
2.9957
c=
0.9129
d=
0.4081
```
##### 2. 求解线性方程组
**函数文件:** `Untitled6`
- **函数定义**: `function[a1,a2,n1,n2]=Untitled6(m1,m2,x)`
- **输入参数**:
- `m1`: 质量1
- `m2`: 质量2
- `x`: 角度
- **输出参数**:
- `a1`: 加速度1
- `a2`: 加速度2
- `n1`: 力1
- `n2`: 力2
**函数实现**:
```matlab
function[a1,a2,n1,n2]=Untitled6(m1,m2,x)
g=9.8;
A=[m1.*cos(x),-m1,-sin(x),0;m1.*sin(x),0,cos(x),0;0,m2,-sin(x),0;0,0,-cos(x),1];
B=[0;m1.*g;0;m2.*g];
X=inv(A)*B;
a1=X(1);
a2=X(2);
n1=X(3);
n2=X(4);
end
```
- **脚本文件调用**:
- 输入: `m1=input('m1=')`, `m2=input('m2=')`, `x=input('角度为:')`
- 调用: `[a1,a2,n1,n2]=Untitled6(m1,m2,x)`
**运行示例**:
```matlab
>> Untitled5
m1=4
m2=4
角度为:pi
a1=
2.4003e-15
a2=
-1.2002e-15
n1=
-39.2000
n2=
78.4000
```
##### 3. 求解绝对素数
**函数文件:** `Untitled8`
- **函数定义**: `function[y]=Untitled8(x)`
- **输入参数**:
- `x`: 自然数
- **输出参数**:
- `y`: 是否为绝对素数 (1: 是, 0: 不是)
**函数实现**:
```matlab
function[y]=Untitled8(x)
if isprime(x) == 1
ge = mod(x, 10);
shi = fix(x / 10);
x1 = ge * 10 + shi;
if isprime(x1) == 1
y = 1;
else
y = 0;
end
else
y = 0;
end
end
```
- **脚本文件调用**:
- 循环: `for x = 10:99`
- 调用: `[y] = Untitled8(x)`
- 输出: `if y == 1; disp(x); end`
**运行示例**:
```matlab
>> Untitled7
11
13
17
31
37
71
73
79
97
```
##### 4. 处理矩阵输入
**函数文件:** `Untitled10`
- **函数定义**: `function[fx]=Untitled10(x)`
- **输入参数**:
- `x`: 矩阵
- **输出参数**:
- `fx`: 同阶矩阵
**函数实现**:
```matlab
function[fx]=Untitled10(x)
fx = (1 ./ ((x - 2).^2 + 0.1)) + (1 ./ (x - 3).^4 + 0.01);
end
```
- **脚本文件调用**:
- 输入: `x = input('x=')`
- 调用: `[fx] = Untitled10(x)`
**运行示例**:
```matlab
>> Untitled9
x=[1,2,3]
fx=
0.9816 1.0100 Inf
```
##### 5. 数学表达式计算
**函数文件:** `f`
- **函数定义**: `function[y]=f(n)`
- **输入参数**:
- `n`: 输入变量
- **输出参数**:
- `y`: 计算结果
**函数实现**:
```matlab
function[y]=f(n)
y = n + 10 * log(n^2 + 5);
end
```
- **脚本文件调用**:
- 调用: `y = f(40) / (f(30) + f(20))`
**运行示例**:
```matlab
>> Untitled
y =
0.6390
```
**函数文件:** `fn`
- **函数定义**: `function[y]=fn(n)`
- **输入参数**:
- `n`: 输入变量
- **输出参数**:
- `y`: 计算结果
**函数实现**:
```matlab
function[y]=fn(n)
y = 0;
for i = 1:n
y = y + i * (i + 1);
end
end
```
- **脚本文件调用**:
- 调用: `y = fn(40) / (fn(30) + fn(20))`
**运行示例**:
```matlab
>> Untitled13
y =
1.7662
```
#### 三、实验总结
本次实验通过具体的实践操作,使学习者掌握了MATLAB函数文件的定义与调用方法,包括数学运算、线性方程组求解、绝对素数判断、矩阵处理以及数学表达式的计算等知识点。这些技能不仅能够帮助学习者更好地理解和应用MATLAB语言,还能够在未来的科学研究和工程实践中发挥重要作用。