Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function val = MonteCarlo(fun,a,b,n,hObject)
- handles=guidata(hObject);
- t=[a:0.01:b];
- f=fun(t);
- axes(handles.montecarlo);
- plot(t,f,'LineWidth',2);
- title('Monte Carlo');
- axis tight;
- maxV=max(f);
- minV=min(f);
- k=0;
- j=0;
- hold on;
- for i=1:n
- x=a+(b-a)*rand(1);
- y=minV+(maxV-minV)*rand(1);
- if(y>=0 & y<=fun(x)) k=k+1; plot(x,y,'Color','g','LineWidth',2);
- elseif(y<0 & y>fun(x)) j=j+1; plot(x,y,'Color','g','LineWidth',2);
- else plot(x,y,'Color','r','LineWidth',2);
- end
- val=(k-j)/i*(maxV-minV)*(b-a);
- set(handles.MCval,'String',num2str(val,'%.4f'))
- pause(0.0001);
- end
- hold off;
- val=(k-j)/n*(maxV-minV)*(b-a);
- end
Advertisement
Add Comment
Please, Sign In to add comment