Hey everybody!
I need to calculate an estimated value of the circle area. Giving some x coordinates and y coordinates. i Have written the following code, but there is something wrong with it. can test my code by the test script:
circleAreaMC([-0.1, 0.7, 0.8, 0.5, -0.4], [0.3, -0.1, 0.9, 0.6, -0.3]) and it should give 3.2. But it gives 0.303 etc.
I really feel like this problem have a much easier solution, can somebody please help me? I am new to matlab. (started 5 days ago 🙂 )
function A = circleAreaMC(xvals,yvals)%A function that estimates the area of a circle by Monte Carlo simulation.
N=5;InC = zeros(size(xvals));DTC = zeros(size(xvals));%A loop that test wether or not the points are inside the circle:
for i=1:length(xvals) %Distance to center:
DTC(i)=norm(xvals(i))+norm(yvals(i)); %Inside the circle:
InC(i)=DTC(i)<=1;end%the 2 vectors:
xvals = (xvals.*InC(i));yvals = (yvals.*InC(i));xvals(xvals==0)=[];yvals(yvals==0)=[];x = zeros(size(xvals));y = zeros(size(xvals));%for loop:
for n=2:length(xvals) x(n)=xvals(n)-xvals(1); y(n)=yvals(n)-yvals(1);end x(x==0)=[];y(y==0)=[];area = 0;for q = 1:(length(x)-1) v = [x(q);y(q);0]; v1 = [x(q+1);y(q+1);0]; cv = cross(v,v1); area = area+norm(cv*cv');enddisp(area);
Best Answer