使用MATLAB求解方程求根——学习笔记
使用MATLAB求解方程求根——學習筆記
碎碎念:終于參加完了某比賽,連續大約摸了兩天的魚,就在昨天由于自己的操作失誤,親手將電腦給燒了,這就是上天在暗示我是時候加油為接下來的兩場比賽和一個考試努力啦~下面淺談一下MATLAB各種求解方程的根的方法。
求方程的根
法一:
求方程的全部根。
????在MATLAB命令窗口輸入:
????p=[1,7,0,9,-20]; ??%建立多項式系數向量
????x=roots(p) ????????%求根
法二:
使用solve函數:
s=solve(f,v):求方程關于指定自變量的解;
s=solve(f):求方程關于默認自變量的解。
其中 f可以是用字符串表示的方程,或符號表達式;若f 中不含等號,則表示解 方程 f=0。
解方程 x^3-3*x+1=0
>>syms x; f=x^3-3*x+1;
>>s=solve(f,x)
>>s=solve(‘x^3-3*x+1’,‘x’)
>>s=solve(‘x^3-3*x+1=0’,‘x’)
Solve函數還可以用來求解方程組!
solve(f1,f2,...,fN,v1,v2,...,vN)
求解由 f1,f2,...,fN 確定的方程組關于 v1, v2,...,vN 的解。
解方程組:
>>[x,y,z]=solve(‘x+2*y-z=27’,‘x+z=3’, ...
????????????????‘x^2+3*y^2=28’,‘x’,‘y’,‘z’)
注意:輸出變量的順序要書寫正確!
Solve在得不到解析解時,會給出數值解。
非線性方程組求解:
fzero(f,x0):求方程f=0在x0附近的根。
幾點說明:
字符串形式:fzero(‘x^3-3*x+1’,2);
通過@調用的函數句柄:fzero(@sin,4);
線性方程組求解:
linsolve(A,b):解線性方程組????
>> A=[1 2 –1; 1 0 1; 1 3 0];
>> b=[2;3;8];
>> X=linsolve(A,b)
注意這里的b是列向量。
求解方程函數小結
roots(p):多項式的所有零點,p是多項式系數向量。
fzero(f,x0):求f=0在x0附近的根,f是函數句柄,可以由字符串給出或使用@, 但不能是符號表達式!
solve(f,v):求方程關于指定自變量的解,f可以是用字符串表示的方程,或符號表 達式,若不含等號表示f=0;
也可解方程組(包含非線性);得不到解析解時,給出數值解。
linsolve(A,b):解線性方程組。
總結
以上是生活随笔為你收集整理的使用MATLAB求解方程求根——学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: break 通过自定义标签跳到指定位置
- 下一篇: 分析C语言的声明——《C专家编程》