1. 程式人生 > >《matlab揭祕》解方程筆記

《matlab揭祕》解方程筆記

在這一章中介紹如何使用matlab工具解方程
內容點包括:

  • 解基本代數方程
  • 符號方程繪圖
  • 方程展開與合併
解基本代數方程

命令:solve(equation, variable)
equation 是一個字串,值是方程的表示式
variable (可選)指明 equation中哪個字元是變數,如果不填,matlab會自己預設選擇一個作為變數
return 返回的資料格式是一個數組
例:

solve(‘x^2+2*x+1=a’,’x’)
ans =
a^(1/2) - 1
- a^(1/2) - 1
使用 double(ans(1))可以將形式化的解變成具體的數值

解方程組的命令拓展:
solve(equation1,equation2,……,equationn)
解返回的是一個結構體
其中包含每個變數的值
例:

struct with fields:
x: [1×1 sym]
y: [1×1 sym]

使用ans.x可以得到解x
使用ans.y可以得到解y

符號方程繪圖

命令:ezplot(f,[x1, x2, y1, y1])
f 是表示表示式的字串
[x1, x2, y1, y1] 表示定義域為[x1,x2],值域為[y1, y1]
自帶title(表示式) 和x軸標號

方程展開與合併

方程展開:
命令:expand()

例:
syms x
expand((x - 1)*(x + 4))
首先定義x是必須的

方程合併同類項
命令:collect()

syms x;
collect(x*(x^2 - 2))

另一種用法:
collect(S,f)
表示從表示式S中提取出f,f也是一個表示式
注意只能直從表示式中提取(表示式S中包含表示式f),不能計算等價式的提取

f = -1/4*x*exp(-2*x)+3/16*exp(-2*x)
collect(f,exp(-2*x))
ans =
(3/16 - x/4)*exp(-2*x)

因式分解:
命令:factor()
可以傳入單個的表示式,也可以傳入一個數組,元素是多個表示式

例 :一般形式
factor([x^2-y^2, x^3+y^3])

化解表示式:
命令:
simplify() 用法同collect命令

求解級數

命令:
taylor(f,m)
f 是函式
m 是返回結果的項數