Limitare una generica curva chiusa ad un dominio Rettangolare

Messaggioda Glauco » 08/05/2017, 10:17

Salve a tutti mi trovo ad affrontare questo problema abbastanza contorto per me, il mio obiettivo è quello di generare una generica curva chiusa ad un rettangolo e limitare questa curva chiusa al dominio rettangolare quando questa curva supera il dominio rettangolare, questo programmino deve essere fatto in Matlab.

Per semplificarci i ragionamenti, consideriamo un rettangolo e una circonferenza.

Mi sono ricavato sia in coordinate cartesiane che polari la funzione rettangolo e la irconferenza, quello che mi viene in mente è di calcolarmi il minimo tra due funzioni polari, non ho molte idee a riguardo come procedere in matlab.

Grazie per l'aiuto
Allegati
Img_Curva.jpg
(20.87 KiB) Mai scaricato
Glauco
Starting Member
Starting Member
 
Messaggio: 1 di 4
Iscritto il: 08/05/2017, 09:18

Re: Limitare una generica curva chiusa ad un dominio Rettangolare

Messaggioda Dobrogost » 08/05/2017, 17:39

La prima idea bovina che mi è venuta in mente è quella di mettere vincoli direttamente nella funzione della curva. In pratica:

Codice:
clearvars
close all

t=linspace(0,2*pi,100);

r=@(t) [cos(t).*(cos(t)<0.8 & cos(t)>-0.8)+0.8*(cos(t)>0.8)-0.8*(cos(t)<-0.8);...
    sin(t).*(sin(t)<1.8 & sin(t)>-1.8)+1.8*(sin(t)>1.8)-1.8*(sin(t)<-1.8)];

points=r(t);

plot(points(1,:),points(2,:))


Dimmi se può andare. Ovviamente per rendere il codice più leggibile conviene che ti scrivi una function che prenda in ingresso intervallo delle x (risp. y) e formula della curva (insomma, scrivi cos(t).*(cos(t)<0.8 & cos(t)>-0.8)+0.8*(cos(t)>0.8)-0.8*(cos(t)<-0.8) in modo più compatto!).
Non ho ottimizzato niente perchè ho supposto che non ti servisse, nel caso dimmi e cambio un po' il codice
Dobrogost
New Member
New Member
 
Messaggio: 6 di 68
Iscritto il: 04/04/2017, 17:03

Re: Limitare una generica curva chiusa ad un dominio Rettangolare

Messaggioda Glauco » 09/05/2017, 18:27

Ho risolto il problema con una procedura un po piu complicata, bene adesso vorrei calcolarmi l'are della curva limitata, ho due funzioni una Area e una minRho.

Codice:
function minR = minRho(rR,rG)
minR=min(rR,rG);
end


devo calcolarmi l'intefrale da 0 a 2*pi di minRho(phi) in dphi, ho degli errori quando uso questa espressione:

Codice:
function A = Area()
    polarfun=@(phi,r) minRho(rR,rG);
    A = integral(polarfun,0,2*pi)*0.035;
end
Glauco
Starting Member
Starting Member
 
Messaggio: 2 di 4
Iscritto il: 08/05/2017, 09:18

Re: Limitare una generica curva chiusa ad un dominio Rettangolare

Messaggioda Dobrogost » 10/05/2017, 10:52

Non mi è chiarissimo cosa tu abbia passato a integral. Se polarfun è funzione di 2 variabili, perchè integri solo da 0 a 2*pi senza specificare r? Quello è sicuro un errore. Inoltre, la stessa polarfun è definita male: se le variabili che dichiari nella handle sono phi e r, devi metterci quelle al posto di rR e rG.
Dobrogost
New Member
New Member
 
Messaggio: 7 di 68
Iscritto il: 04/04/2017, 17:03


Torna a Pensare un po' di più

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite