(有源代碼)數值分析作業,本文主要包括兩個部分,第一部分是常微分方程(ODE)的三個實驗題,第二部分是有關的拓展討論,包括高階常微分的求解和邊值問題的求解(BVP).文中的算法和算例都是基于Matlab計算的.ODE問題從剛性(STIFFNESS)來看分為非剛性的問題和剛性的問題,剛性問題(如大系數的VDP方程)用通常的方法如ODE45來求解,效率會很低,用ODE15S等,則效率會高多了.而通常的非剛性問題,用ODE45來求解會有很好的效果.從階次來看可以分為高階微分方程和一階常微分方程,高階的微分方程一般可以化為狀態空間(STATE SPACE)的低階微分方程來求解.從微分方程的性態看來,主要是微分方程式一階導系數大的時候,步長應該選得響應的小些.或者如果問題的性態不是太好估計的話,用較小的步長是比較好的,此外的話Adams多步法在小步長的時候效率比R-K(RUNGE-KUTTA)方法要好些,而精度也高些,但是穩定區間要小些.從初值和邊值來看,也是顯著的不同的.此外對于非線性常微分方程還有打靶法,胞映射方法等.而對于微分方程穩定性的研究,則諸如相平面圖等也是不可缺少的工具.值得提出的是,除了用ode系類函數外,用simulink等等模塊圖來求解微分方程也是一種非常不錯的方法,甚至是更有優勢的方法(在應用的角度來說).
標簽:
Matla
分
ODE
BVP
上傳時間:
2014-01-05
上傳用戶:caixiaoxu26
function [R,k,b] = msc(A)
% 多元散射校正
% 輸入待處理矩陣,通過多元散射校正,求得校正后的矩陣
%% 獲得矩陣行列數
[m,n] = size(A);
%% 求平均光譜
M = mean(A,2);
%% 利用最小二乘法求每一列的斜率k和截距b
for i = 1:n
a = polyfit(M,A(:,i),1);
if i == 1
k = a(1);
b = a(2);
else
k = [k,a(1)];
b = [b,a(2)];
end
end
%% 求得結果
for i = 1:n
Ai = (A(:,i)-b(i))/k(i);
if i == 1
R = Ai;
else
R = [R,Ai];
end
end
標簽:
MSC
多元
散射
校正
上傳時間:
2020-03-12
上傳用戶:15275387185