我想從 Matlab Hermite 函式的輸出中創建一個函式(例如,如果我們有 Hermite 函式的輸出,[8 0 -12 0]它將是8x^3 - 12x多項式),然后使用Simpson's 3/8 Rule整合該函式。
我已經在 Matlab 中創建了一個函式,該函式使用此規則集成任何函式,并且我還創建了以向量形式回傳 Hermite 多項式(具有遞回關系)的系數的函式。
我的問題:
- 如果可能的話,在 Hermite 函式中,我希望從此輸出中
[8 0 -12 0]生成此輸出8x^3 - 12x。這個輸出我將能夠整合。我怎樣才能做到這一點? - 我可以結合這兩個函式并在不約定第一個函式的輸出的情況下整合 Hermite 多項式嗎?
Hermite 多項式函式的代碼,其中 n 是多項式的階數:
function h = hermite_rec(n)
if( 0==n ), h = 1;
elseif( 1==n ), h = [2 0];
else
h1 = zeros(1,n 1);
h1(1:n) = 2*hermite_rec(n-1);
h2 = zeros(1,n 1);
h2(3:end) = 2*(n-1)*hermite_rec(n-2);
h = h1 - h2;
end
辛普森函式代碼,使用辛普森 3/8 規則集成函式。a 為積分下限,b 為積分上限:
n = 3;
h = (b-a)/(3*n); %3h = (b-a)/n
IS2=0;
for i=1:n
IS2 = IS2 (f(a (3*i-3)*h) 3*f(a (3*i-2)*h) 3*f(a (3*i-1)*h) f(a (3*i)*h))*3*h/8;
end
end
感謝您的任何建議!
uj5u.com熱心網友回復:
要在給定系數的情況下創建多項式函式,您可以使用polyval(另請參見匿名函式):
p = [1 2]; % example. This represents the polynomial x 2
f = @(x) polyval(p, x); % anonymous function of x, assigned to function handle f
現在f是一個可以數值積分的函式。
如果您想直接將其作為Hermite函式的一部分包含在內,只需在最后添加如下內容:
h = @(x) polyval(p, x);
然后該Hermite函式將回傳一個表示 Hermite 多項式的函式(句柄)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/479870.html
