首页/文章/ 详情

Rust的在线编译器

7月前浏览5781

在线编译器方便,省去了本地编译器的安装配置环节,开箱即用。下面介绍几个Rust的在线编译器。

1 Rust playground


https://play.rust-lang.org/

这是官方维护的站点。操作简单,对于入门来说,已经够用了。

▲Rust playground的界面


2 Rust Explorer


https://www.rustexplorer.com/b

相对于Rust playground,这个站点可以引入第三方包,如图所示

▲开头引入第三方包

▲右侧的终端模拟器输出信息


3 replit 


https://replit.com/ 

这个站点需要注册账号,但是功能更强大,相当于在线的IDE。支持很多的语言,比如Rust,C++,Python等等。

▲点击create创建项目


▲支持多种语言


▲和vscode的界面很像


▲右侧的终端模拟器输出信息


体验一遍后,感觉还是不错的

    (1) 一个加强版的github,replit做的功能,github后续都可以实现。

    (2) 核心的在线编辑功能很强大,基本能想到的功能都有,编辑,版本控制,开发环境,debug,包管理等等。

    (3) 相当于安装了vscode+git+nodejs(开发环境)+im+论坛。

    (4) 多人实时编辑代码,虚拟开发环境等亮点还是很有吸引力的。


硬要说几个缺点的话,首先,编辑过程没有本地流程,特别对于程序员+机械键盘来说,反应跟不上手速;其次,依赖网络,大部分功能依赖网络,如果网络不好,比较麻烦。


来源:数值分析与有限元编程
UGpython控制装配
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-04-03
最近编辑:7月前
太白金星
本科 慢慢来
获赞 5粉丝 10文章 322课程 0
点赞
收藏
作者推荐

中心差分法解动力学方程

01 算法分析 将位移按照泰勒公式展开,得到前差分公式: 同样可得向后差分公式: 以上两式相减和相加分别得到: 以上两式忽略高阶小量,可得到 时刻速度和加速度表达式: 为了求解 时刻的位移,将 代入 时刻动力学方程 得到 其中 若已经求得 和 时刻的位移 和 ,则可以从 求得 时刻的位移。由 可知,只给定初值 和 不能求出 ,还必须确定 ,即该方法存在如何起步的问题。在向后差分公式 中取 得 其中 和 由初值条件给出。而 则由 求得。中心差分法解动力学方程的算法可归纳为(一)初始计算形成刚度矩阵 ,质量矩阵 和阻尼矩阵 由初值 和 求解 和 由时间步长 计算计算 计算有效质量矩阵 对 进行分解 (二) 对每一时间步计算 时刻的有效载荷解 时刻位移 如果需要,按照 计算 时刻的速度和加速度02 算例 用中心差分法解运动方程,时间步长 其中 初始条件 将初始条件代入方程,解得 每个时间步长计算 以及 03 编程实现 # 中心差分法# @表示矩阵乘法import numpy as npimport matplotlib.pyplot as pltstep = 10 #求解步数data = np.zeros( (2,step) ) # 存储各时间步长的数据K = np.mat('6,-2;-2,4')M = np.mat('2,0;0,1')Q = np.mat('0;10')a_0 = np.zeros((2,1))velocity_0 = np.zeros((2,1))# 求初始加速度acceleration_0 = np.linalg.inv(M) *(Q - K @ a_0)dt = 0.28c0 = 1/(dt**2)c1 = 0.5 * dtc2 = 2 * c0c3 = 1 / c2a_dt = a_0 - dt * velocity_0 + c3 * acceleration_0# 有效质量矩阵MM = c0 * MinvMM = np.linalg.inv(MM)TMP1 = K - c2*M A_t_sub_dt = a_dtA_t = a_0 A_t_plus_dt = np.zeros((2,1))for i in range(step): TMP2 = M @ A_t_sub_dt QQ = Q - TMP1 @ A_t - c0 * TMP2 A_t_plus_dt = invMM @ QQ data[0:,[i] ] = A_t_plus_dt A_t_sub_dt = A_t A_t = A_t_plus_dt#解线性方程组采用求逆的方法,计算规模大的,可以用LDLT分解.#time = np.zeros((step))for i in range(step): t = 0.28 * (i+1) time[i] = tlabels =['Δt','2Δt','3Δt','4Δt','5Δt','6Δt','7Δt','8Δt','9Δt','10Δt']fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(5,12) )ax1.plot(time, data[0, :], 'r-')ax1.set_xticks(time, labels)ax1.set_ylabel('$a_1$',fontsize = 14)ax2.plot(time, data[1, :], 'b-')ax2.set_xticks(time, labels)ax2.set_ylabel('$a_2$',fontsize = 14)fig.savefig('./f429.png', dpi = 400) plt.show()来源:数值分析与有限元编程

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈