  MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档 Function presents data wrong, Monte Carlo method
 用户名 记住信息 密码
 资料存档 资料存档
 主题工具 显示模式 2019-11-24, 01:25 AM #1 高级会员   注册日期: 2019-11-21 帖子: 2,897 感谢他人: 0 有 0 帖获得 0 感谢 声望力: 60  Function presents data wrong, Monte Carlo method I am trying to write a program that does integration with monte carlo method. One of its features is to place dots on the graph with different colours, blue or red depending on the if statement. The if statement is put in a "for" loop and i dont know why but it seems like the first option is ignored after first iteration. The whole thing looks like this : but it should look like this : In addition i dont know why but it looks like the plot makes some additional empty space at the top The whole code is not finished yet, its just a matter of a few lines but these dots are so annoying that I want to figure out whats wrong first. Heres the code. ``````function p=montecarlo(f, a, b, n, t) %f is a function provided by user %a and b is a range %n is the amount of random points %t is a t=a:01:b vector to draw a plot upper=max(f(t)); lower=min(f(t)); x=a+(b-a).*(rand(n,1)) %generates vector of random numbers from a to b y=lower+(upper-lower).*(rand(n,1)) %generates vector of ranom numbers from min to max hold on for i=1:n if y(i)>=f(i) plot(x(i),y(i),'bo') else plot(x(i),y(i),'ro') end plot(t,f(t),'k') end end ``` Arguments provided to the function : f= x.^2+3*x+5, a= -4 , b= 2, n= 1000 . More... ```  主题工具 显示可打印版本 邮寄本页给好友 显示模式 平板模式 切换到混合模式 切换到树形模式 发帖规则 您不可以发表新主题 您不可以发表回复 您不可以上传附件 您不可以编辑自己的帖子 启用 BB 代码 论坛禁用 表情符号 论坛启用 [IMG] 代码 论坛启用 HTML 代码Trackbacks are 禁用 Pingbacks are 禁用 Refbacks are 禁用 版面规则

 -- 简体中文 -- 繁體中文 -- English (US) MATLAB爱好者论坛 - 论坛存档 - 返回顶端 