Mamy równanie podobne do Fredholm integral equation drugiego rodzaju.Implementacja iteracyjnego rozwiązania równania całkowego w Matlab
W celu rozwiązania tego równania otrzymaliśmy iteracyjnego rozwiązania, które są gwarantowane do zbiegają się do naszego konkretnego równania. Teraz naszym jedynym problemem jest implementacja tej iteracyjnej procedury w MATLAB.
Na razie problematyczna część naszego kodu wygląda następująco:
function delta = delta(x,a,P,H,E,c,c0,w)
delt = @(x)delta_a(x,a,P,H,E,c0,w);
for i=1:500
delt = @(x)delt(x) - 1/E.*integral(@(xi)((c(1)-c(2)*delt(xi))*ms(xi,x,a,P,H,w)),0,a-0.001);
end
delta=delt;
end
delta_a
jest funkcją x
i stanowią wartość początkową iteracji. ms
jest funkcją x
i xi
.
Jak widać, chcemy, aby delt
zależało zarówno od x
(przed całką), jak i od (wewnątrz integralnej) w iteracji. Niestety, ten sposób pisania kodu (z uchwytem funkcji) nie daje nam wartości liczbowej, jak chcemy. Nie możemy ani napisać delt
jako dwóch różnych funkcji, jednej z x
i jednej z xi
, ponieważ xi
nie jest zdefiniowana (aż integral
ją zdefiniuje). W jaki sposób możemy się upewnić, że delt
zależy od całki i nadal uzyskać wartość liczbową z iteracji?
Czy ktoś z was ma jakieś sugestie, jak możemy rozwiązać ten problem?
za pomocą numerycznego
Wyjaśnienie parametry wejściowe: x jest wektorem wartości liczbowych, reszta są stałymi. Problem z moim kodem polega na tym, że parametr wejściowy x nie jest używany (domyślam się, że oznacza to, że x jest traktowany jako symbol).
Czy używasz symbolicznej lub numerycznej integracji? – Jan
@Jan Integracja numeryczna. (Zmieniono moje pytanie) – Linda
Może 'x' jest wektorem punktów siatki, gdzie twoja funkcja ma być przybliżona ...? – Jan