Girişler: noktaOctave'de bir fonksiyonun türevini nasıl bulabilirim?
Yf
x-değerleri tutan
Xf
= ve dizi noktaları yöntem = 2-noktalı ileri fark, 2- y-değerleri içeren bir dizi = nokta geri fark, 3-noktalı merkezi fark, 5 puanlık bir merkezi fark
Çıkışlar:
X
Ar = seçili yöntemin kullanılabildiği geçerli x değerlerini içeren ışını (örneğin Xf
dizisinin üst sınırında ileriye doğru fark yöntemini kullanamazsınız çünkü bundan sonra değer yoktur)
DF
= noktalarda türevleri
bir komut dosyası noktaları seti verin ve sonra kullanmadan 4 farklı yöntem kullanılarak noktalarda türevleri hesaplamak için gereken bir dahilidiff
gibi türev fonksiyonu. Onlardan birini kodlamak için biraz yardım istiyorum ve sonra geri kalanını nasıl yapacağımı anlayabileceğimi düşünüyorum.
girişimim:
[a, minidx] = min(Xf);
[b, maxidx] = max(Xf);
n = 10;
h = (b-a)/n;
f = (x .^3) .* e.^(-x) .* cos(x);
If method = "forward" #Input by user
X = [min(Xf), Xf(maxidx-1)];
for k = min(Xf):n # not sure if this is the right iteration range...
f(1) = f(x-2*h) + 8*f(x +h);
f(2) = 8*f(x-h) + f(x+2*h);
DF = (f1-f2)/(12*h);
endfor
endif