[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 278: copy(460ab9bd9f0b9fb71a7c755d27cdc5b5.png): failed to open stream: No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 298: unlink(/460ab9bd9f0b9fb71a7c755d27cdc5b5.dvi): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 299: unlink(/460ab9bd9f0b9fb71a7c755d27cdc5b5.ps): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 300: unlink(/460ab9bd9f0b9fb71a7c755d27cdc5b5.png): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 278: copy(be28721c32dbadbc6b4d5168bbc26b42.png): failed to open stream: No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 298: unlink(/be28721c32dbadbc6b4d5168bbc26b42.dvi): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 299: unlink(/be28721c32dbadbc6b4d5168bbc26b42.ps): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 300: unlink(/be28721c32dbadbc6b4d5168bbc26b42.png): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 278: copy(c1bdb8fe32d545740941806e50e37688.png): failed to open stream: No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 298: unlink(/c1bdb8fe32d545740941806e50e37688.dvi): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 299: unlink(/c1bdb8fe32d545740941806e50e37688.ps): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 300: unlink(/c1bdb8fe32d545740941806e50e37688.png): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 278: copy(c1bdb8fe32d545740941806e50e37688.png): failed to open stream: No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 298: unlink(/c1bdb8fe32d545740941806e50e37688.dvi): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 299: unlink(/c1bdb8fe32d545740941806e50e37688.ps): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 300: unlink(/c1bdb8fe32d545740941806e50e37688.png): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 278: copy(c1bdb8fe32d545740941806e50e37688.png): failed to open stream: No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 298: unlink(/c1bdb8fe32d545740941806e50e37688.dvi): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 299: unlink(/c1bdb8fe32d545740941806e50e37688.ps): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 300: unlink(/c1bdb8fe32d545740941806e50e37688.png): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 278: copy(c1bdb8fe32d545740941806e50e37688.png): failed to open stream: No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 298: unlink(/c1bdb8fe32d545740941806e50e37688.dvi): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 299: unlink(/c1bdb8fe32d545740941806e50e37688.ps): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 300: unlink(/c1bdb8fe32d545740941806e50e37688.png): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 278: copy(c1bdb8fe32d545740941806e50e37688.png): failed to open stream: No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 298: unlink(/c1bdb8fe32d545740941806e50e37688.dvi): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 299: unlink(/c1bdb8fe32d545740941806e50e37688.ps): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 300: unlink(/c1bdb8fe32d545740941806e50e37688.png): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 278: copy(c1bdb8fe32d545740941806e50e37688.png): failed to open stream: No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 298: unlink(/c1bdb8fe32d545740941806e50e37688.dvi): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 299: unlink(/c1bdb8fe32d545740941806e50e37688.ps): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 300: unlink(/c1bdb8fe32d545740941806e50e37688.png): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 278: copy(c1bdb8fe32d545740941806e50e37688.png): failed to open stream: No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 298: unlink(/c1bdb8fe32d545740941806e50e37688.dvi): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 299: unlink(/c1bdb8fe32d545740941806e50e37688.ps): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 300: unlink(/c1bdb8fe32d545740941806e50e37688.png): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 278: copy(c1bdb8fe32d545740941806e50e37688.png): failed to open stream: No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 298: unlink(/c1bdb8fe32d545740941806e50e37688.dvi): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 299: unlink(/c1bdb8fe32d545740941806e50e37688.ps): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 300: unlink(/c1bdb8fe32d545740941806e50e37688.png): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 278: copy(c1bdb8fe32d545740941806e50e37688.png): failed to open stream: No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 298: unlink(/c1bdb8fe32d545740941806e50e37688.dvi): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 299: unlink(/c1bdb8fe32d545740941806e50e37688.ps): No such file or directory
[phpBB Debug] PHP Warning: in file /var/www/ey/web/forum/latexrender/class.latexrender.php on line 300: unlink(/c1bdb8fe32d545740941806e50e37688.png): No such file or directory
[phpBB Debug] PHP Warning: in file /generate_feed.php on line 295: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3768)
Latest posts from topic “Interpolazione di funzioni vettoriali in Matlab” Latest posts from topic “Interpolazione di funzioni vettoriali in Matlab” on “ElectroYou”. 2019-10-18T17:55:55Z https://www.electroyou.it/forum/viewtopic.php?f=7&t=78934 Re: Interpolazione di funzioni vettoriali in Matlab https://www.electroyou.it/forum/viewtopic.php?f=7&t=78934#p826797 DrCox 2019-10-22T10:16:07Z 2019-10-22T10:16:07Z
[quote="Ianero"]
Nel frattempo ho notato che non hai più utilizzato fmincon, come mai?


Diverse funzioni di minimizzazione usano tecniche leggermente diverse (tecniche diverse si prestano meglio a problemi diversi). Niente che comporti cambiare l'approccio al problema.
Re: Interpolazione di funzioni vettoriali in Matlab https://www.electroyou.it/forum/viewtopic.php?f=7&t=78934#p826767 Ianero 2019-10-21T20:27:13Z 2019-10-21T20:27:13Z
Proverò anche questa strada e ti farò sapere, grazie mille.
Nel frattempo ho notato che non hai più utilizzato fmincon, come mai?

[quote="xyz"]Qui spiega una tecnica con R per una regressione non-lineare con un modello una funzione vettoriale:

Me la leggo, anche se non sono molto pratico di R, grazie.
Re: Interpolazione di funzioni vettoriali in Matlab https://www.electroyou.it/forum/viewtopic.php?f=7&t=78934#p826680 DrCox 2019-10-21T11:13:25Z 2019-10-21T11:13:25Z
Alla fine della fiera, identificare dei parametri altro non e' che un problema di ottimizzazione, per il quale devi trovare il minimo di una certa funzione ("funzione costo") da te definita.

Partiamo da un caso piu' semplice, di cui e' immediato visualizzare il risultato.
Consideriamo questa funzione:


[unparseable or potentially dangerous latex formula]

Come fittare un insieme di punti usando questa funzione?

Ecco un esempio di codice (che verosimilmente senza modificarlo non funzionera' con i tuoi dati, e' giusto per darti l'idea di come approcciare il problema)

main.m
Code: Seleziona tutto
%
% data..... %already defined
% t..... %already defined
%

%% Initialize variables

alpha=0;
beta=0;
phi=0;
k=0;
v=0;
d0=0;

%% Fitting

x0 = [alpha, beta, phi, k, v, d0];
options = optimset('MaxFunEvals',10000,'TolFun',1e-9,'TolX',1e-9);
[x] = fminsearch(@(x) cost_function(t, data, x), x0, options);

alpha=x(1);
beta=x(2);
phi=x(3);
k=x(4);
v=x(5);
d0=x(6);

%% check result

[ x,y ] = fitting_function( t, alpha, beta, phi, k, v, d0 );

figure
plot3(t,data(1,:),data(2,:),'-b','LineWidth',2)
hold on
plot3(t,x,y,'--r','LineWidth',2)
xlabel('t')
ylabel('x')
zlabel('y')
grid minor
legend('data','fit')



cost_function.m
Code: Seleziona tutto
function [ cost ] = cost_function( t, data, x )

alpha=x(1);
beta=x(2);
phi=x(3);
k=x(4);
v=x(5);
d0=x(6);

[ x_var, y_var ] = fitting_function( t, alpha, beta, phi, k, v, d0 );

cost_x = sum( (x_var - data(1,:)).^2 );
cost_y = sum( (y_var - data(2,:)).^2 );

cost = mean([cost_x, cost_y]);

end


fitting_function.m
Code: Seleziona tutto
function [ x,y ] = fitting_function( t, alpha, beta, phi, k, v, d0 )

x = v*cos(phi)*cos(beta)./k * (1-exp(-k*t))+d0*cos(alpha);
y = v*sin(phi)*cos(beta)./k * (1-exp(-k*t))+d0*sin(alpha);

end


Per il problema x,y,z,t che hai tu, devi solo aggiungere una dimensione.


Se il fitting non funziona, per problemi con dati piu' complessi, si puo':
- cambiare tecnica di ottimizzazione (come accennato sopra, ad esempio la simulated-annealing)
- cambiare gli initial guess
- definire una cost-function differente
Re: Interpolazione di funzioni vettoriali in Matlab https://www.electroyou.it/forum/viewtopic.php?f=7&t=78934#p826580 marioursino 2019-10-20T14:55:28Z 2019-10-20T14:55:28Z
Seguo. Ho un problema simile.
Re: Interpolazione di funzioni vettoriali in Matlab https://www.electroyou.it/forum/viewtopic.php?f=7&t=78934#p826569 xyz 2019-10-20T13:03:55Z 2019-10-20T13:03:55Z
[quote="Ianero"]...il metodo dei minimi quadrati totali (TLS)...

Sarebbe in inglese Total Least Squares. E' sempre un metodo per individuare una retta, le funzioni che hai come modello sono trigonometriche, difficilmente riesci a trovare una trasformazione biettiva adatta allo scopo.

Qui spiega una tecnica con R per una regressione non-lineare con un modello una funzione vettoriale:

https://stats.stackexchange.com/questio ... ssion-in-r
Re: Interpolazione di funzioni vettoriali in Matlab https://www.electroyou.it/forum/viewtopic.php?f=7&t=78934#p826552 Ianero 2019-10-20T09:06:55Z 2019-10-20T09:06:55Z
Provo, grazie. :-)
Re: Interpolazione di funzioni vettoriali in Matlab https://www.electroyou.it/forum/viewtopic.php?f=7&t=78934#p826479 DrCox 2019-10-19T16:35:51Z 2019-10-19T16:35:51Z
[quote="Ianero"]Quello che devo fare è trovare la curva 3D che meglio approssima un set di punti, condizionando il problema alla seguente equazione parametrica per la curva da trovare:

[unparseable or potentially dangerous latex formula]

dove i parametri da stimare sono i tre angoli \alpha, \beta, \phi, e inoltre k, v e d_0.


Hai un certo numero di punti nello spazio e vuoi trovare il valore dei parametri del tuo modello al fine di fittare tale nuvola di punti.
Quello che farei io è:
- definire una funzione costo da minimizzare: puoi considerare ad esempio la somma dei quadrati delle distanze, o altre metriche.
- usare una funzione di minimizzazione che ti restituisca i parametri
Per quanto riguarda il secondo punto, invece di usare
Code: Seleziona tutto
fit
, userei
Code: Seleziona tutto
fmincon
oppure, in caso di problemi più rognosi, spesso mi ha salvato usare
Code: Seleziona tutto
simulannealbnd
Re: Interpolazione di funzioni vettoriali in Matlab https://www.electroyou.it/forum/viewtopic.php?f=7&t=78934#p826410 Ianero 2019-10-18T23:03:29Z 2019-10-18T23:03:29Z
Vado a dare un’occhiata, grazie.
Nel frattempo ho scoperto che per il mio scopo forse ciò che mi serve è il metodo dei minimi quadrati totali (TLS), devo approfondire anche questo.
Re: Interpolazione di funzioni vettoriali in Matlab https://www.electroyou.it/forum/viewtopic.php?f=7&t=78934#p826409 xyz 2019-10-18T22:50:12Z 2019-10-18T22:50:12Z
Sulle regressioni non lineari hai provato a usare R (programma open source multi piattaforma) ? Ha nativo il calcolo dei minimi quadrati non lineari:

https://www.rdocumentation.org/packages ... topics/nls

non mi è mai servito per funzioni vettoriali ma per funzioni singole non lineari individua i coefficienti in modo efficiente, basta caricare i dati e impostare il modello con i valori iniziali dei coefficienti da individuare.
Re: Interpolazione di funzioni vettoriali in Matlab https://www.electroyou.it/forum/viewtopic.php?f=7&t=78934#p826392 Ianero 2019-10-18T17:55:55Z 2019-10-18T17:55:55Z
Mi sono accorto in realtà di aver commesso un errore. Quello che devo fare è trovare la curva 3D che meglio approssima un set di punti, condizionando il problema alla seguente equazione parametrica per la curva da trovare:

[unparseable or potentially dangerous latex formula]

dove i parametri da stimare sono i tre angoli \alpha, \beta, \phi, e inoltre k, v e d_0.
Dunque direi, se non faccio errori, che io devo minimizzare l'errore quadratico medio su due curve separatamente, [unparseable or potentially dangerous latex formula] e [unparseable or potentially dangerous latex formula], eliminando il parametro tempo:

[unparseable or potentially dangerous latex formula]

[unparseable or potentially dangerous latex formula]

Fin qui ti torna o vedi errori di impostazione del problema?

Se è giusto, allora in Matlab lo farei così:

Code: Seleziona tutto
x_fittype = fittype('(v_0*sin(beta)+9.8/k)/(v_0*cos(beta))*( (x-d_0*cos(alpha))/(cos(phi)) ) + 9.8/(k^2)*log( (1-k*(x-d_0*cos(alpha))/(cos(phi)*v_0*cos(beta))) )','independent','x','dependent','z')
opt=fitoptions('Method','NonlinearLeastSquares');
%specifico in ordine: alpha,beta,d_0,k,phi,v_0
opt.Lower      = [-pi/4 pi/4-5*pi/180  2000 1e-4 pi-10*pi/180 100];
opt.StartPoint = [0 pi/4  3000 1e-3 pi 150];
opt.Upper      = [pi/4 pi/4+5*pi/180  4500 1e-2 pi+10*pi/180 200];
z_fit = fit(x_data,z_data,x_fittype,opt)


e analogamente poi anche per [unparseable or potentially dangerous latex formula].
Dandogli in pasto una traiettoria con \phi=\pi, la stima su [unparseable or potentially dangerous latex formula] avviene benissimo, mentre quella su [unparseable or potentially dangerous latex formula] restituisce:

Complex value computed by model function, fitting cannot continue.
Try using or tightening upper and lower bounds on coefficients.


che sicuramente dipende da quel [unparseable or potentially dangerous latex formula] nel logaritmo.
Come si potrebbe gestire questo problema? Lui sta ricevendo tanti valori di z e corrispondentemente tanti valori di y\approx 0.

Grazie.