solve函數可用來求解代數方程(組)與非線性方程(組),具體使用格式如下:
solve('F','var'):用於求解單個方程情形,F表示求解方程,var表示求解變量。當求解變量省略時,表示對默認變量求解。若方程為符號方程,求解變量為符號變量時,上述格式中的單引號省略;
[x1,x2,…,xn]=solve('F1','F2',…,'Fn','var1','var2',…,'varn'):用於求解n個方程組成的方程組問題,F1, F2, …, Fn表示各個方程,var1, var2, …, varn表示各個求解變量,[x1,x2,…,xn]表示求解結果。
S = solve(eqn,var)
S = solve(eqn,var,Name,Value)
Y = solve(eqns,vars)
Y = solve(eqns,vars,Name,Value)
[y1,...,yN] = solve(eqns,vars)
[y1,...,yN] = solve(eqns,vars,Name,Value)
[y1,...,yN,parameters,conditions]=solve(eqns,vars,'ReturnConditions',true)
實例求解
1、求解單變量方程
clc;clear all;close all;syms xeqn = sin(x) == 1;solx = solve(eqn,x)clc;clear all;close all;syms x %是必要的,這將會把x設為符號變量eq=x^2+2*x+1;%eq也會變為一個符號變量用於儲存方程s=solve(eq,x) %方程的結果由solve函數返回,存儲在s裡。注意(eq,x)中x是說明eq這個方程中x為變量%如果返回empty,則表明解不存在。如果返回empty+warning,則解可能存在,但是solve找不到2、對方程組的求解
clc;clear all;close all;syms x yeq1 = x + 2*y-8;eq2 = 3*x+5*y-4;s1 = solve(eq1,eq2,x,y)s1.xs1.y[s11,s111] = solve(eq1,eq2,x,y)3、返回數值解
%解析解(analytical solution):用嚴格的公式表示的解。%數值解(numerical solution):無法用嚴格的公式表示,是採用某種計算方法(有限元、逼近、插值)得到的。%symbolic solver無法找到精確的用符號表示的解,因此在調用numeric solver之前會事先聲明(warning)。因為等式不是多項式,所以想要找到全部可能的解需要很長時間。%numeric solver不會盡力去找等式的全部numeric solution,它僅僅返回它找到的第一個解。clc,clearsyms xsolve(sin(x)==x^2-1,x)%驗證上面的等式確實有一個正值解:畫出等式的左右兩部分的曲線ezplot(sin(x),-2,2)hold onezplot(x^2-1,-2,2)hold off%也可以直接用函數vpasolve求出數值解(需要定義(尋找)解的範圍)vpasolve(sin(x)==x^2-1,x,[0 2 ])4、求解不等式
clc,clearsyms x yS=solve(x^2+y^2+x*y<1,x>0,y>0 , [x,y], 'ReturnConditions',true);solx=S.xsoly=S.yparams=S.parametersconditions=S.conditions%利用subs和isAlways檢驗u=7/2和v=1/2是否滿足約束條件isAlways(subs(S.conditions,S.parameters,[7/2,1/2]))%isAlways返回loogical 1(true)表示這些值滿足約束條件。將這兩個參數的值帶入(函數subs)S.x和S.y中,找到一個x和y的解solx=subs(S.x,S.parameters,[7/2,1/2])soly=subs(S.y,S.parameters,[7/2,1/2])%用函數vpa得到解的數值形式vpa(solx)vpa(soly)5、返回實數解
clc,clearsyms xsolve(x^5==3125,x)%如果僅僅需要一個實數解,那麼就把選項Real設置成truesolve(x^5==3125,x,'Real',true)6、符號解求解多變量方程
%為了避免求解方程時對符號參數產生混亂,需要指明一個等式中需要求解的變量。%如果不指明的話,solve函數就會通過symvar選擇一個變量(認為該變量是要求解的變量)clc,clearsyms a b c xsola=solve(a*x^2+b*x+c==0,a) %待求解的變量是asol=solve(a*x^2+b*x+c==0) %待求解的變量是xMATLAB相關內容往期回顧
MATLAB中繪製三維圖形
MATLAB的輸入輸出input函數
matlab詳細介紹畫柱形圖
matlab中矩陣的入門知識
matlab中legend函數的用法
matlab繪圖--線性規劃圖解法示意
Matlab 進度條的製作
Matlab對fig文件導出數據
Matlab中plot函數全功能解析
Matlab的fmincon函數求解非線性規劃
MATLAB線性規劃函數求解線性規劃
MATLAB求解混合整數線性規劃
電子書推薦(一)《MATLAB在數學建模中的應用》
matlab GUI實現導入txt文件(含字符和數據的文本)
matlab 畫圖——誤差條圖errorbar函數(含視頻講解)
matlab多項式(定義、四則計算、求根)
Matlab中繪製不同坐標的圖形
Matlab 多項式擬合函數關係
層次分析法(AHP)在MATLAB中的應用
MATLAB的lsqcurvefit函數擬合非線性式子中的未知參數
MATLAB的fgoalattain()函數求解多目標規劃
基於MATLAB的灰色預測模型GM(1,1)計算的GUI界面
電子書推薦(二)《Matlab 從入門到精通 》
MATLAB曲線擬合工具箱
MATLAB的主成分分析的GUI界面計算
MATLAB《自動控制原理》相關編程
MATLAB的switch選擇語句和input輸入語句
MATLAB的switch選擇語句和input輸入語句視頻
MATLAB實例講解—求二元函數的極值
MATLAB實例講解—求二元函數的極值視頻
MATLAB的ode45函數實例求常微分方程數值解
MATLAB求解微分方程組—以一種傳染病的動力學模型求解為例
Matlab編程並繪製函數或者信號包絡線
MATLAB中regress函數用法(多元線性回歸)
MATLAB實例編程之一個成績分析和處理的程序實例講解
matlab中的歸一化處理的三種方法
電子書推薦(三)《運籌學基礎及其MATLAB應用》
MATLAB非線性擬合函數nlinfit函數
Matlab作圖後的調整—線條、坐標、標題、圖例
MATLAB用GUI計算十進位轉換為二、八、十六進位
本文內容來源於網絡,僅供參考學習,如內容、圖片有任何版權問題,請聯繫處理,24小時內刪除。