# Lecture 6 – 檔案匯入與匯出、插值;Exp 5 橡皮筋遲滯現象
## 課程目標
- 學會如何在 MATLAB 中匯入與輸出不同格式的檔案
- 了解如何使用插值 (interpolation) 管理與分析數據
- 進行橡皮筋遲滯實驗,觀察能量耗散
---
## 一、檔案匯入與匯出 (File Import & Export)
### 常見檔案類型與 MATLAB 指令
| 類別 | 格式 | 指令 |
|------|------|------|
| 一般資料 | `.mat` (workspace) | `load`, `save` |
| | `.csv` (逗號分隔) | `readmatrix`, `writematrix` |
| | `.txt`, `.dat` (文字檔) | `importdata` |
| 試算表 | `.xls` (Excel) | `xlsread` |
| 科學資料 | `.cdf`, `.fits`, `.hdf` | `cdfread`, `fitsread`, `hdfread` |
| 影像 | `.jpg`, `.png`, `.tiff`, ... | `imread`, `imwrite` |
| 聲音 | `.wav`, `.ogg`, `.mp3`, ... | `audioread`, `audiowrite` |
| 影片 | `.avi`, `.mp4`, `.mov`, ... | `VideoReader`, `VideoWriter` |
---
### 檔案匯入 (Import)
1. **簡單讀取:**
```matlab
data = readmatrix('data.csv');
plot(data(:,1), data(:,2));
```
2. **load 指令 (ASCII 檔案):**
```matlab
data = load('data.txt','-ascii');
```
- -ascii 表示用 ASCII 編碼處理文字檔。
3. **fopen + fscanf:**
```matlab
fid = fopen('out.txt','w');
fprintf(fid, '%1.2f %1.3f\n', A');
fclose(fid);
```
---
## 二、插值 (Interpolation)
**基本概念**
- 內插 (interpolation):由有限數據點估算區間內的新數據。
- 擬合 (fitting):尋找數學函數逼近整體趨勢。
---
**一維插值範例**
```matlab
x = 0:10;
y = cos(x)./(1+x);
xi = 0:0.5:10;
yi = interp1(x,y,xi,'cubic');
plot(x,y,'o', xi,yi,'-')
```
**二維插值範例**
```matlab
[x, y, z] = peaks(8);
[xi, yi] = meshgrid(-3:0.1:3);
zi = interp2(x,y,z,xi,yi,'cubic');
surf(xi, yi, zi)
```
👉 若資料點不在網格上,可用 griddata 進行插值。
---
**插值與數值微分/積分**
- 微分
- diff:對陣列做差分
- differentiate:對擬合函數物件求導
- 積分
- trapz, cumtrapz:對陣列數據積分
- integrate:對擬合函數積分
---
## 三、實驗五:橡皮筋的遲滯現象 (Hysteresis of Rubber Band)
### 實驗目的
- 觀察橡皮筋在拉伸與釋放過程中的 **遲滯現象 (hysteresis)**
- 理解高分子材料的非線性彈性行為
- 計算能量耗散
---
### 實驗原理
- 一般彈簧遵循虎克定律:
$$
F = k_s \Delta x
$$
- 橡皮筋由高分子鏈構成:
- **未拉伸** → 分子纏繞
- **拉伸** → 分子逐漸拉直,剛度增加
- **完全拉直** → 表面變粗糙、顏色變淡
- 在拉伸/釋放過程中,部分能量轉化為 **熱能耗散**,導致兩條曲線不同,形成 **遲滯迴圈 (hysteresis loop)**。
---
### 實驗步驟
1. 準備橡皮筋、直桿、砝碼。
2. 逐步增加砝碼 → 記錄伸長量 (Loading)。
3. 逐步移除砝碼 → 記錄伸長量 (Release)。
4. 作圖:
- X 軸:伸長量 \(\Delta x\)
- Y 軸:受力 \(F\)
- 比較「拉伸」與「釋放」曲線,觀察遲滯迴圈。
5. 計算兩條曲線面積差 → 即能量損耗。
---
**思考問題**
- 為什麼橡皮筋拉伸後會變白、變熱?
- 如果使用不同材質 (如矽膠、金屬彈簧),遲滯現象會相同嗎?
---
**參考資料**
- Xiangjun Xing, Paul M. Goldbart, and Leo Radzihovsky, Thermal Fluctuations and Rubber Elasticity, PRL 98, 075502 (2007).
- https://www.youtube.com/watch?v=fFtM9JznLh8
- https://www.schoolphysics.co.uk/age14-16/Matter/text/Rubber_band/index.html