Wir haben eine Gleichung ähnlich der Fredholm integral equation der zweiten Art.Implementieren der iterativen Lösung der Integralgleichung in Matlab
Um diese Gleichung zu lösen wir eine iterative Lösung, die garantiert konvergieren für unsere spezifische Gleichung gegeben wurden. Jetzt besteht unser einziges Problem darin, dieses iterative Verfahren in MATLAB zu implementieren.
Vorerst sieht der problematische Teil unseres Code wie folgt:
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
ist eine Funktion der x
und den Anfangswert der Iteration darstellen. ms
ist eine Funktion von x
und xi
.
Wie Sie vielleicht sehen können, wollen wir delt
sowohl von x
(vor dem Integral) als auch xi
(innerhalb des Integrals) in der Iteration abhängen. Leider gibt uns diese Art, den Code (mit der Funktion handle) zu schreiben, keinen numerischen Wert, wie wir es wünschen. Wir können delt
nicht als zwei verschiedene Funktionen schreiben, eine von x
und eine von xi
, da xi
nicht definiert ist (bis integral
definiert es). Also, wie können wir sicherstellen, dass delt
von xi
innerhalb des Integrals abhängt, und immer noch einen numerischen Wert aus der Iteration bekommen?
Haben Sie irgendwelche Vorschläge, wie wir das lösen könnten?
mittels numerischer Integration
Erläuterung der Eingabeparameter: x ein Vektor von numerischen Werten ist, der Rest sind Konstanten. Ein Problem mit meinem Code ist, dass der Eingabeparameter x nicht benutzt wird (ich denke, das bedeutet, dass x als Symbol behandelt wird).
Verwenden Sie symbolische oder numerische Integration? – Jan
@Jan Numerische Integration. (Bearbeitete meine Frage) – Linda
Vielleicht ist 'x' der Vektor von Gitterpunkten, wo Ihre Funktion angenähert werden soll ....? – Jan