Abbiamo un'equazione simile al Fredholm integral equation di secondo tipo.Implementazione della soluzione iterativa dell'equazione integrale in Matlab
risolvere questa equazione c'è stata data una soluzione iterativa che è garantito per convergere per la nostra specifica equazione. Ora il nostro unico problema consiste nell'implementare questa prodezza iterativa in MATLAB.
Per il momento, la parte problematica del nostro codice si presenta così:
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
è una funzione di x
, e rappresentano il valore iniziale del iterazione. ms
è una funzione di x
e xi
.
Come si può vedere che vogliamo delt
dipendere sia x
(prima l'integrale) e xi
(all'interno dell'integrale) nella iterazione. Sfortunatamente questo modo di scrivere il codice (con la funzione handle) non ci dà un valore numerico, come desideriamo. Non è possibile scrivere delt
come due funzioni diverse, una di x
e una di xi
, poiché xi
non è definita (fino a quando lo definisce integral
). Quindi, come possiamo assicurarci che l'delt
dipenda dall'xi
all'interno dell'integrale e ottenga ancora un valore numerico dall'iterazione?
Qualcuno di voi ha qualche suggerimento su come potremmo risolvere questo?
utilizzando l'integrazione numerica
Spiegazione dei parametri di ingresso: x è un vettore di valori numerici, tutto il resto sono costanti. Un problema con il mio codice è che il parametro di input x non viene utilizzato (suppongo che questo significhi che x sia trattato come un simbolo).
Utilizzi l'integrazione simbolica o numerica? – Jan
@Jan Integrazione numerica. (Modificata la mia domanda) – Linda
Forse 'x' è il vettore dei punti della griglia in cui la tua funzione deve essere approssimata ....? – Jan