code should give 3.2 but i get 0.0729, is there an easier way doing this code?

조회 수: 1 (최근 30일)
Ibrahim
Ibrahim 2015년 1월 12일
댓글: dpb 2015년 1월 13일
Hey everybody!
(see Attached file in the hyperlink: http://www.docdroid.net/ozso/exercise-matlab-1.pdf.html )
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.
I asked this question before, but i try Again now since i got another wrong answer: ans = 0.0729
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 :-) )
Script is as follows:
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);
A = area+norm(cv*cv');
end
Thanks for your time!
  댓글 수: 10
Ibrahim
Ibrahim 2015년 1월 13일
Hey Ced!
How do i write the vector xvals, without defining it? is it: xvals = [1:N]; ?
thanks for your time
dpb
dpb 2015년 1월 13일
doc rand
I think you need to type
doc
at the command line and just start through the tutorial information under the "Getting Started" tab to begin to learn the basics of Matlab syntax and use. This takes you through the basics of syntax and using arrays and "how Matlab works" to show the concepts.

댓글을 달려면 로그인하십시오.

답변 (0개)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by