六 數值微積分與方程求解 MATLAB學習筆記

2021-10-02 22:30:56 字數 2851 閱讀 3905

高等數學是解析解,matlab求數值解。

向前差分函式diff(),計算向量元素間差分。呼叫方法:

可用牛頓-萊布尼茨公式計算。若無法求原函式,可用matlab實現:

其中filename為被積函式名,被積函式可用函式控制代碼形式,a,b為定積分上下限,tol控制積分精度預設為e-6。trace控制是否展現積分過程,預設trace-0不展現。返回引數i為定積分的值,n為被積函式的呼叫次數。

基於梯形積分法:i=trapz(x,y),y=f(x).x和y為向量。

多重積分:

直接法:以矩陣初等變換為基礎,可以求得方程組的精確解,占用的記憶體空間大,一般適合求解低階稠密線性方程組。

迭代解法:給定初值,逐步逼近,占用空間小,程式設計簡單,適用於大型稀疏矩陣線性方程組,要考慮演算法收斂性。

單變數非線性方程求解:x=fzero(filename,x0),x0為迭代初始值。需作圖檢驗。

非線性方程組求解:x=fsolve(filename,x0,option)

無約束最優化問題:x1,x2為左右區間,x0為初值

有約束最優化問題:變數在滿足某約束條件下的最優化,約束條件有線性\非線性不等式\等式約束,x的上下界。求解函式:

[xmin,fmin]=fmincon(filename,x0,a,b,aeq,beq,lbnd,ubnd,nonf,option)

aeq,beq,lbnd,ubnd分別為線性不等式、線性等式、上下界約束,不存在用空矩陣表示。

凡含有引數,未知函式和未知函式導數 (或微分) 的方程,稱為微分方程,有時簡稱為方程,未知函式是一元函式的微分方程稱作常微分方程,未知函式是多元函式的微分方程稱作偏微分方程。微分方程**現的未知函式最高端導數的階數,稱為微分方程的階。數學理論參考:csdn: 常微分方程 筆記

dsolve('eqn1','eqn2',...,'cond1','cond2',...,'var')函式:dsolve函式用於求常微分方程組的精確解,也稱為常微分方程的符號解。如果沒有初始條件或邊界條件,則求出通解;如果有,則求出特解。eqni表示方程,condi表示初值,var表示微分方程中的自變數,系統預設為t。d為微分符號,d2表示二階微分,d3表示三階微分。使用參考:matlab求解常微分方程(組)—dsolve、ode系列函式詳解(含例程)、matlab中微分方程的求解

常微分方程數值求解一般函式呼叫格式為[t,y]=solver(filename,tspan,y0,option)。t和y分別為列向量時間點和相應的數值解,filename為定義為f(t,y)且返回列向量的函式名,tspan為[t0,tf]表示求解區間,y0是初始狀態向量,option為可選引數(相對誤差、絕對誤差等)。

常微分方程數值求解函式的統一命名格式:odennxx。ode是ordinary differential equation縮寫,nn是階數數字,xx是演算法的專門特徵。

f=@(t,y)(y^2-t-2)/(4*(t+1));

[t,y]=ode23(f,[0,10],2);

y = deval(sol,x)y = deval(x,sol)可以計算x中包含的點處的微分方程結構體sol問題的解。

對於高階方程需要轉化為一階常微分方程組,即狀態方程。參考matlab求解常微分方程(組)—dsolve、ode系列函式詳解(含例程)

系統的時間響應曲線是個啥???看不懂

相平面圖:對於如下形式的二階系統: 式中x是狀態變數,可以是輸出量,也可以不是輸出量;它的解析函式,可以是線性的,也可以是非線性。若以 x(t)為橫座標,x』(t) 為縱座標的直角座標平面,由所有相軌跡組成的曲線族構成的圖稱為相平面圖。

剛性問題:有一類常微分方程,其解的分量有的變化很快,有的變化很慢,且相差懸殊,這就是剛性問題(stiff),非剛性方法計算較慢。選擇以s結尾的函式,如ode15s。

求解器solver

功能說明

ode45

一步演算法:4、5階龍格庫塔方程:累計截斷誤差(δx)^5

大部分嘗試的首選演算法

ode23

一步演算法:2、3階龍格庫塔方程:累計截斷誤差(δx)^3

適用於精度較低的情形

ode23t

梯形演算法

適度剛性情形

ode15s

多步法:gear』s反向數值微分:精度中等

若ode45失效時,可以嘗試使用

lotka-volterra模型模擬:

plot(y(:,1),y(:,2))%相平面圖

Matlab 數值微積分與方程求解

專題六 數值微積分與方程求解 目錄 一 數值微分與數值積分 1.數值微分 2.數值積分 二 線性方程組求解 先說差分。差分可以分為向前差分,向後差分和中心差分。三者分別如下表述 matlab提供了求向前差分的函式diff,其呼叫格式有3種 舉個例子 求向量 1,34,54,32,56,78 的一階向...

數值微積分與方程求解(一)

目錄 數值微分的實現 數值積分的實現 matlab提供了求向前差分的函式diff,其呼叫格式有三種 dx diff x 計算向量x的向前差分,dx i x i 1 x i i 1,2,n 1。dx diff x,n 計算向量x的n階向前差分。例如,diff x,2 diff diff x dx di...

MATLAB 6 數值微積分與方程求解

目錄 6.1數值微分與數值積分 6.2線性方程求解 6.3非線性方程求解與函式極值計算 6.4常微分方程數值求解 dx diff x 計算向量x的向前差分,dx i x i 1 x i dx diff x,n 計算向量x的n階向前差分 dx diff a,n,dim 計算矩陣的n階差分,dim 1時...