V I S U A L I Z Z A D I S C U S S I O N E |
Paolo111 |
Inserito il - 27/06/2006 : 17:25:48 Salve ragazzi, questo è il mio primo post in questo sito :D e perciò vi saluto 
Ho un problemino con questo programma, trattasi appunto della rettangolare adattativa che interpola all'estremo destro dell'intervallo
function [Qf,Errore,ind_errore,n_val_f]=Rettangolare_Adattativa(f_int,a,b,acc_rich,nmax) Qf=0; Errore=0;ind_errore=0; f_int_a=feval(f_int,a); f_int_b=feval(f_int,b); n_val_f=2; pila=pila_crea(0); elem=struct('estr_sin',a,'estr_des',b,'f_estr_sin',f_int_a,'f_estr_des',f_int_b,'val_appr_integ',(b-a)*(f_int_a)); pila=pila_push(pila,elem); while ~pila_vuota(pila) & n_val_f<nmax [pila,elem]=pila_pop(pila); ak=elem.estr_sin; bk=elem.estr_des; mk=(ak+bk)/2; hk2=abs(bk-ak)/2; f_int_mk=feval(f_int,mk); n_val_f=n_val_f+1; f_int_ak=elem.f_estr_sin; f_int_bk=elem.f_estr_des; Qfk1=hk2*(f_int_ak+f_int_mk)/2; Qfk2=hk2*(f_int_mk+f_int_bk)/2; Qf2k=Qfk1+Qfk2; Ek=abs(Qf2k-elem.val_appr_integ)/3; if Ek<=abs(bk-ak)*acc_rich/(b-a); Qf=Qf+Qf2k; Errore=Errore+Ek; else elem1=struct('estr_sin',ak,'estr_des',mk,'f_estr_sin',f_int_ak,'f_estr_des',f_int_mk,'val_appr_integ',Qfk1); elem2=struct('estr_sin',mk,'estr_des',bk,'f_estr_sin',f_int_mk,'f_estr_des',f_int_bk,'val_appr_integ',Qfk2); pila=pila_push(pila,elem1); pila=pila_push(pila,elem2); end end if n_val_f >= nmax ind_errore=-1; end
Il problema stà nel fatto che dovrei costruire una variante che interpoli all'estremo sinistra 
Cosa dovrei fare?
Grazie mille :D |
4 U L T I M E R I S P O S T E (in alto le più recenti) |
ivan |
Inserito il - 29/06/2006 : 12:07:01 Citazione: Messaggio inserito da Paolo111
Salve ragazzi, questo è il mio primo post in questo sito :D e perciò vi saluto 
Ho un problemino con questo programma, trattasi appunto della rettangolare adattativa che interpola all'estremo destro dell'intervallo
function [Qf,Errore,ind_errore,n_val_f]=Rettangolare_Adattativa(f_int,a,b,acc_rich,nmax) Qf=0; Errore=0;ind_errore=0; f_int_a=feval(f_int,a); f_int_b=feval(f_int,b); n_val_f=2; pila=pila_crea(0); elem=struct('estr_sin',a,'estr_des',b,'f_estr_sin',f_int_a,'f_estr_des',f_int_b,'val_appr_integ',(b-a)*(f_int_a)); pila=pila_push(pila,elem); while ~pila_vuota(pila) & n_val_f<nmax [pila,elem]=pila_pop(pila); ak=elem.estr_sin; bk=elem.estr_des; mk=(ak+bk)/2; hk2=abs(bk-ak)/2; f_int_mk=feval(f_int,mk); n_val_f=n_val_f+1; f_int_ak=elem.f_estr_sin; f_int_bk=elem.f_estr_des; Qfk1=hk2*(f_int_ak+f_int_mk)/2; Qfk2=hk2*(f_int_mk+f_int_bk)/2; Qf2k=Qfk1+Qfk2; Ek=abs(Qf2k-elem.val_appr_integ)/3; if Ek<=abs(bk-ak)*acc_rich/(b-a); Qf=Qf+Qf2k; Errore=Errore+Ek; else elem1=struct('estr_sin',ak,'estr_des',mk,'f_estr_sin',f_int_ak,'f_estr_des',f_int_mk,'val_appr_integ',Qfk1); elem2=struct('estr_sin',mk,'estr_des',bk,'f_estr_sin',f_int_mk,'f_estr_des',f_int_bk,'val_appr_integ',Qfk2); pila=pila_push(pila,elem1); pila=pila_push(pila,elem2); end end if n_val_f >= nmax ind_errore=-1; end
Il problema stà nel fatto che dovrei costruire una variante che interpoli all'estremo sinistra 
Cosa dovrei fare?
Grazie mille :D
sui bigliettini di 3 anni fa non c'era, mi dispiace.
 |
Paolo111 |
Inserito il - 29/06/2006 : 12:03:34 Azz...e io che mi sentivo un deficente perchè non riuscivo a fare questo proggetto!!! Penso che lo spedirò così come l'ho fatto... Ho provato a chiedere in 2-3 forum diversi di programmazzione e nessuno sa niente...o sono tutti gnorri (nel senso che sanno e non dicono niente...) oppure non lo sa proprio nessuno!!!

Ok, dopo questa bevuta posso pure festeggiare      |
Cathàll |
Inserito il - 28/06/2006 : 16:12:54 Citazione: Messaggio inserito da Paolo111
Sapreste almeno dirmi che vuol dire interpolare a destra invece che a sinistra?
I sotto intervalli da prendere in considerazione sono sempre gli stessi?
Non ne ho idea. In compenso hai tutta la mia stima, se dovessi riuscire a capirci qualcosa  |
Paolo111 |
Inserito il - 28/06/2006 : 09:11:32 Sapreste almeno dirmi che vuol dire interpolare a destra invece che a sinistra?
I sotto intervalli da prendere in considerazione sono sempre gli stessi?
|
|
|