1樓:赫爾公尺特的假面
啊上學期好像學了simpson公式啥的數值積分解法,都差不多忘了。 (擔心寫錯啊哈哈哈哈)
但是感覺就對著公式一步步來就完了。
比如梯形公式
就把端點a和b帶進去嘛,然後如果你只取乙個梯形,那麼精度肯定不怎麼樣,劃分的梯形越多越好,就是復化梯形公式了,咱們把這堆梯形面積加起來就是結果。
function
[s] =
trap
(f,n,a,b)
% 梯形公式:\int L dx= [f(a)+f(b)](b-a)/2
% n為分為n段h=
(b-a
)/n;
s=0;
trape=@(
x)(f
(x-h
)+f(
x))*h
/2;fori=
a+h:
h:bs
=s+trape(i
);end
end不過直接加好像很浪費運算嗷,因為很多項相加起來都消掉了了,所以可以修改一波
function
[s] =
trap
(f,n,a,b)
%梯形公式:\int L dx= [f(a)+f(b)](b-a)/2
% %n為分為n段h=
(b-a
)/n;
s=h/
2*(f
(a)+
f(b)
+2*sum(f
(a+h
:h:b
-h)));
end同樣simpson公式也是,他就換了個樣子,這樣式的。
所以就應該有
function
[s] =
simpson
(f,n,a,b)
%Simpson公式:\int L dx= (b-a)/6[f(a) + 4f((a+b)/2) + f(b)]
%n為分為n段h=
(b-a
)/n;
s=0;
sim=@(x
)l/6
*(f(
x-h)
+4*f
(x-h
/2)+
f(x)
);fori=
a+h:
h:bs
=s+sim(i
);end
end然後也和梯形一樣,有好多白算的都消掉了,給它換個馬甲就完事了,和剛才一樣的。
俺就不寫了。
當然了matlab中也有自帶的梯形公式求積分trapz()
而quad()函式用的就是simpson方法
(欸突然發現好像1e-6和你們要求的精度一樣?莫非你們其實是打算直接用自帶函式算麼)
然後來說說誤差以及區間逐次分半
誤差
emmm這個書上應該有推吧,復合梯形公式誤差
復合simpson公式誤差
區間逐次分半
就拿梯形公式距離吧,如果說在區間[a,b]上, 是f分n段得到的梯形公式計算出的積分值,那麼其可以改寫為
然後如果把每個區間都分半的話,再去用梯形公式計算,得到的就是
顯然的點一定是 的分點。只要把
上的函式值新增,即可得到新的積分結果,即
所以區間逐次分半的每次迭代其實就是用這個迭代格式來更新T的數值,直到你達到要求,然後記下你的迭代次數就可以了。
用matlab怎麼畫出這個矩陣?
M31415926 heatmap toeplitz 1 n fliplr toeplitz 1 n 1 小同事提供另外的寫法,應當也算最簡潔了 f n abs n 1 2 1 n 1 heatmap max f 21 f 21 heatmap max f 10 f 10 野生學渣 function...
影象處理(matlab和c )用macbook pro可以嗎?
愚人S 先說結論 如果只打算在機器上使用小資料集對演算法做簡單驗證,那可以。以下是具體說明 但凡是涉及計算機視覺的,任何單機都可以不夠用。如果你只是在小的資料集上進行一些很基礎的驗證,那只要是散熱合格的i5 7th以上的配置的筆記本都行。題主你希望知道選擇17年款的13寸mbp是否可以,那我印象裡面...
用」熵值法確定權重「怎麼用MATLAB軟體實現?
若許閑乘月 MATLAB沒用到,自己用R語言寫了乙個。標準化方法用的是極值標準化 1 喬家君.改進的熵值法在河南省可持續發展能力評估中的應用 J 資源科學,2004 01 113 119. 戲法師 function s,w shang x n,m size x X,ps mapminmax x ps...