在R中实现细胞扩散动力学模型:exp()函数代码正确性验证求助
R代码与论文公式的匹配验证及修正建议
核心结论
你代码中exp()函数的使用是完全正确的,R语言中exp(x)等价于数学上的(ex),完美对应公式里的(e{E_\pm t})项。
代码与公式的逐项匹配验证
对照论文中的公式,你的代码各项对应关系如下:
- 第一项:(C_+ (V_3 E_+ + D_{32} G_{23}) e^{E_+ t}) → 代码中
C0plus * (V3 * Eplus + D32 * G23)*exp(Eplus * t),完全匹配 - 第二项:(C_- (V_3 E_- + D_{32} G_{23}) e^{E_- t}) → 代码中
C0minus * (V3 * Eminus + D32 * G23)*exp(Eminus * t),完全匹配 - 第三项:(\frac{D_{21} A_1^0}{D_{21} G_{12} + P_{42}}) → 代码中
((D21 * A1_0)/(D21 * G12 + P42)),完全匹配
代码规范优化建议
虽然功能正确,但可以遵循R语言的常规规范调整细节:
A2_t_1_calc <- function(t, C0plus, C0minus, Eplus, Eminus, A1_0, D21, D32, G12, G23, V3, P42) { y <- C0plus * (V3 * Eplus + D32 * G23) * exp(Eplus * t) + C0minus * (V3 * Eminus + D32 * G23) * exp(Eminus * t) + (D21 * A1_0) / (D21 * G12 + P42) return(y) # 显式返回结果,可读性更强 }
额外注意事项
- 确保调用函数时传入的参数(如
C0plus对应(C_+)、Eplus对应(E_+)等)与论文符号完全对应,避免参数混淆 - 如果需要向量化计算(比如传入多个
t值),当前代码已经支持,因为exp()和算术运算在R中默认是向量化的
内容的提问来源于stack exchange,提问作者eB_Bo
相关产品推荐
相关产品推荐

