Page 1 of 1

MATLAB-hjelp

Posted: 09/09-2010 23:51
by FredrikM
Sitter og roter med MATLAB. (jeg får ikke til, og det skyldes enten 1) jeg er dum, 2) jeg kan ikke MATLAB, eller 3) kombinasjon)

Ihvertfall. Jeg prøver å plotte et vektorfelt [tex]\vec{E}=-(8x/y)\vec{e_x}+(4x^2/y^2)\vec{e_y}[/tex]

med koden

Code: Select all

[x,y]=meshgrid(-1:0.1:1);

quiver(x,y,-8*x./y,4*x.^2/y.^2)
axis equal
Men jeg får feilmelding

Code: Select all

Warning: Matrix is singular to working precision. 
> In sett2oppg2 at 12
Jeg skjønner at jeg deler på null opptil flere steder, men jeg trodde MATLAB klarte å håndtere slikt. Hvordan skal ellers få plottet mitt lille vektorfelt?

Posted: 10/09-2010 08:32
by drgz
Gir dette forventet plot?

Code: Select all

[x,y]=meshgrid(-1:0.1:1);
xx=-8*x./y;
yy=4*(x./y).^2;
xx(isinf(xx))=0;
yy(isinf(yy))=0;

quiver(x,y,xx,yy)
axis equal
Ellers er det greit å huske at du som regel må ta hånd om inf/nan på egen hånd i MATLAB.

Posted: 10/09-2010 08:39
by FredrikM
Fint! Dette fungerte meget bedre.

(jeg prøvde lenge i gårkveld, og de gangene jeg faktisk fikk plott endte det opp med å være bare prikker, og ingen piler, men nå ser det ut til å funke)

Posted: 10/09-2010 11:12
by drgz
Du kan forøvrig sette inf/nan-elementene til andre verdier enn 0 som kanskje er mer passende, men dette må man vurdere ut i fra problemstillingen.