标签: simulation

泊松变数, ? 连接和到达率,Java网络模拟

我正在开发一个网络模拟器,其中数据包到达和传输尝试的事件遵循泊松分布。我对 Knuth 算法进行了改编:

\n\n
public class Poisson {\n\n    private double \xce\xbb;\n    private Random rand;\n\n    /** Creates a variable with a given mean. */\n    public Poisson(double \xce\xbb) {\n        this.\xce\xbb = \xce\xbb;\n        rand = new Random();\n    }\n\n    public int next() {\n        double L = Math.exp(-\xce\xbb);\n        double p = 1.0;\n        int k = 0;\n\n        do {\n            k++;\n            p *= rand.nextDouble();\n        } while (p > L);\n\n        return k - 1;\n\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的规范规定节点使用泊松过程随机重新安排楼层。平均到达间隔时间呈指数分布,平均值 Ts = 2.5ms。我使用 \xce\xbb = 2.5 是否正确?

\n\n

当我想举办新到货活动时,我会这样做:

\n\n
Event …
Run Code Online (Sandbox Code Playgroud)

java simulation networking poisson

2
推荐指数
1
解决办法
3136
查看次数

获取模拟过程中的对象总数 OMNET++/VEINS

我正在为 VANET 运行 VEINS 模拟。有没有办法访问 OMNET++ 中特定时间模拟的汽车总数?(我正在尝试计算汽车之间交换的数据包数量,并且由于我正在广播它,所以我想将发送到的数据包相乘被模拟的车辆数量可以很好地指示收到的数据包数量应该有多少)。

simulation omnet++ veins

2
推荐指数
1
解决办法
700
查看次数

Modelsim10.1c 中的对象窗口中未显示输入和输出信号

我是在 modelsim 中使用 verilog 设计电路的初学者。我使用示例代码和教程来了解 modelsim 的工作原理。代码和测试平台编译没有任何问题,甚至测试平台模拟也没有任何错误,但输入和输出信号未显示在对象窗口中,并且不在实例菜单下。请为我描述如何找到它们并模拟波形。这是我的代码和测试台。D触发器的定义

// module D_FF with synchronous reset
module D_FF(q, d, clk, reset);
output q;
input d, clk, reset;
reg q;
// Lots of new constructs. Ignore the functionality of the
// constructs.
// Concentrate on how the design block is built in a top-down fashion.
always @(negedge clk or posedge reset)
if (reset)
q <= 1'b0;
else
q <= d;
endmodule
Run Code Online (Sandbox Code Playgroud)

D 的 T 触发器的定义

module T_FF(q, clk, reset);
output q;
input clk, reset; …
Run Code Online (Sandbox Code Playgroud)

simulation verilog modelsim

2
推荐指数
1
解决办法
3629
查看次数

使用 R 按行进行二项式分布

有两列,ID 和概率

        ID probability
        1  0.5
        2  0.8
        3  0.3
Run Code Online (Sandbox Code Playgroud)

我想模拟每个ID的疾病状态,0代表健康,1代表生病。每个ID生病的概率在第二列。

我努力了

df$sick <- rbinom(1,1,df$probability)
Run Code Online (Sandbox Code Playgroud)

但我要么得到全零,要么得到全1。我究竟做错了什么?预先感谢您的帮助!

simulation r distribution

2
推荐指数
1
解决办法
1683
查看次数

在 python 中模拟物理按键,而不提高 LowLevelKeyHookInjected (0x10) 标志

我试图在 python 中模拟物理按键(即 F12),而不在 Windows 中引发 LowLevelKeyHookInjected (0x10) 标志。这样做的目的是在程序中触发一个动作,过滤掉模拟的键盘按键。该程序是一种辅助技术,为操作系统控制提供替代访问方法。

我尝试了很多选项,包括 SendKeys、pyauotogui、pynput、ctype 等...

如果我实际按下 F12,我可以触发适当的操作,但是,使用上述方法通过 python 模拟 F12 按下和释放不起作用。这是我尝试过的示例:

import pynput.keyboard import Key, Controller
import time
Keyboard = Controller()
keyboard.press(Key.f12)
time.sleep(.05)
keyboard.release(Key.f12)
Run Code Online (Sandbox Code Playgroud)

因此,它只是模拟按下 f12 键,等待 0.05 秒,然后释放该键。

我在 Windows 上运行 Python 3.6.6

提前感谢您的所有帮助!

simulation emulation keypress keyboard-events python-3.x

2
推荐指数
1
解决办法
9376
查看次数

时间步长的变化不会影响 Dymola 中的模拟结果

我正在研究在 Modelica 的建筑库中开发的热水储存模型。使用Dymola通过Dassl模拟模型,我将模拟的时间步长从1s改为1200s,但是我没有看到模拟结果有任何变化。它与求解器有关吗?如果您能提供帮助,我将不胜感激。

simulation modelica timestep

2
推荐指数
1
解决办法
88
查看次数

在 R 中模拟翻转炸薯条

我从小就一直有这样的疑问:

  • 假设您将 100 条炸薯条放在炉子上的平底锅上
  • 对于这个问题,我们假设每个炸薯条只能有 2 个“状态”:“面朝上”或“面朝下”
  • 每个炸薯条需要每面煮 1 分钟 - 如果炸薯条任何一面煮超过 1 分钟,则视为烧焦
  • 将炸薯条放在平底锅上,一分钟后摇动平底锅 - 一些炸薯条会在空中翻转并“面朝上”或“面朝下”落在锅上,但有些炸薯条永远不会完全被翻转了。
  • 又过了一分钟,你再次摇动锅。
  • 为了这个问题,我们假设每次摇动锅时,每个炸薯条都有 50% 的几率在空中翻转,而在空中翻转的炸薯条有 50% 的几率落地“面朝下”或“面朝上”。

这是问题:

  • 2 分钟后,这 100 根薯条中有多少是完全煮熟的,有多少是烧焦的?
  • 需要多少分钟才​​能确保所有炸薯条两面都煮熟(即使其中许多会被烧焦)?

我尝试使用 R 为这种情况编写一个模拟:

original_data = data.frame(id = 1:100, state = "start")

number_fries_selected_in_first_flip = sample(1:100, 1, replace=F)

fries_selected_in_first_flip = sample(1:100, number_fries_selected_in_first_flip, replace=F)
Run Code Online (Sandbox Code Playgroud)

这就是我陷入困境的地方 - 如果我能以某种方式“标记”所选的炸薯条,我就可以以 50% 的概率为这些炸薯条分配“烧焦/完全煮熟”状态:

status <- c("perfectly cooked","burnt")

original_data$tagged_fries_status <- sample(status, number_fries_selected_in_first_flip, replace=TRUE, prob=c(0.5, 0.5))
Run Code Online (Sandbox Code Playgroud)

如果我能完成模拟,我可以将模拟扩展到第二次翻转、第三次翻转等。在模拟结束时(例如,5 次翻转后),我可以制作一个图表,显示烧焦的炸薯条数量与煮得很完美。然后,我可以多次重复模拟(例如1000次),并找出炸焦/完全煮熟的薯条的平均数量。

有人可以告诉我如何编写这个模拟吗?

谢谢你!

simulation r

2
推荐指数
1
解决办法
116
查看次数

如何使这个递归函数更快?(四叉树)

我正在学习 C++,并开始用 java 做一些我喜欢的事情。使用四叉树进行粒子模拟和聚集,以廉价地查找区域中的粒子。一切正常,但是当我使用四叉树从某个区域获取粒子时,速度非常慢(5000 次调用大约需要 1 秒)。

我尝试用数组替换向量并测量函数各个部分的执行时间。我是否犯了一些低级错误,例如不必要地复制对象等?我使用的是 5000 个粒子,我无法想象 1fps 是它能达到的最快速度。

根据请求的最小可重现示例的完整代码:

主程序

#include <string>
#include <iostream>
#include <random>
#include <chrono>
#include <thread>
#include <cmath>

#include "Particle.h"
#include "Quadtree.h"

// Clock
using namespace std::chrono;
using namespace std::this_thread;

// Global constants
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;
const int desiredFPS = 30;
const int frameTimeMS = int(1000 / (double)desiredFPS);
const int numberOfParticles = 5000;

// Random number generation
std::random_device dev;
std::mt19937 …
Run Code Online (Sandbox Code Playgroud)

c++ simulation performance quadtree

2
推荐指数
1
解决办法
282
查看次数

从手稿复制 ODE 食物网模型

我正在尝试复制此处发布的湖泊食物网络模型。该模型代表两条食物链(沿海与远洋),由顶级捕食者(鱼类)连接。我已经对模型进行了编码,但是当我在 2-3 个时间步长后运行它时,模型会生成NaN. 我已经多次检查我的代码,寻找括号等问题,但找不到问题。

如果我将fish初始丰度设置为 0,模型就会运行,所以我认为问题一定出在模型的鱼组件上。

以下是方程式:

Ap = 中上层资源,Z = 中上层浮游动物,Pp = 中上层捕食者,F = 鱼类,Al = 沿岸资源,I = 无脊椎动物,Pl = 沿岸捕食者。

在此输入图像描述

这是我对模型进行编码的尝试:

library(deSolve)

# define the model
vade_2005_model <- function(Time, State, Pars){
  
  with(as.list(c(State, Pars)), {

# pelagic components -----------------------------------------------

# resource
pel_res_dt <- (rPel * AP * (1 - (AP/(KT * q)))) - (aZP * ((Z * AP)/(AP + bZP)))

# zooplankton
pel_zoo_dt <-  (ef * aZP * ((Z * AP)/(AP + bZP))) …
Run Code Online (Sandbox Code Playgroud)

simulation r ode desolve

2
推荐指数
1
解决办法
65
查看次数

R 中的“rexp(1000, 1)”和“replicate(1000, rexp(1,1))”有什么区别?

我正在尝试使用参数为 1 的指数分布生成 1000 个数字。

将种子值设置为 1 后,我尝试了rexp(1000, 1)replicate(1000, rexp(1, 1)),但是得到的两个向量的中位数不同。

我预计这两个表达式生成的向量是相同的,因为它们都是从相同种子值下的相同指数分布中采样的。

rexp(1000, 1)和 和有什么区别replicate(1000, rexp(1, 1))?在实践中我应该使用哪个?

这是我尝试过的代码:

> options(digits = 2)  
> set.seed(1)
> 
> a <- rexp(1000, 1)   
> b <- replicate(1000, rexp(1, 1))
> 
> median(a)   
[1] 0.73   
> median(b)   
[1] 0.68
Run Code Online (Sandbox Code Playgroud)

simulation statistics r replicate exp

2
推荐指数
1
解决办法
69
查看次数