1. 問題描述
研究工作中,往往需要利用MATLAB的符號計算功能輔助推導(dǎo)公式。完成公式推導(dǎo)之后,往往需要利用推導(dǎo)出的公式做數(shù)值計算。
2. 技術(shù)背景
一個典型的MATLAB符號計算示例如下:
syms x
y = sin(2*x); % 原函數(shù)
y1 = diff(y,x,1); % 一階導(dǎo)數(shù)
y1
運行結(jié)構(gòu)如下:
y1 =
2*cos(2*x)
欲求解導(dǎo)數(shù)y1,在x1 = [1 2 3 4 5]處的數(shù)值。
此處,雖然求出了導(dǎo)數(shù),但無法直接用于數(shù)值計算。因為所有變量均為符號變量,不同于數(shù)值變量。
3. 解決方案
- 將數(shù)值(向量、矩陣)代入符號函數(shù)
采用subs變量替換函數(shù):
x1 = [1 2 3 4 5]
temp = subs(y1,x,x1)
得到:
temp =
[ 2*cos(2), 2*cos(4), 2*cos(6), 2*cos(8), 2*cos(10)]
- 將temp的符號變量轉(zhuǎn)換為double數(shù)值
temp2 = double(temp)
得到數(shù)值:
temp2 =
-0.8323 -1.3073 1.9203 -0.2910 -1.6781
4. 實施示例
略
5. 常見問題
略