Python中如何定义可区分时间与坐标向量的R^4函数
Python 接收二维向量作为参数的函数定义方案
Python 3 已移除函数形参位置直接解构序列的语法,因此你无法在def的参数列表中直接写[v,u]完成二维向量的解包,正确实现方式如下:
基础实现
def f(x, t, p): # 从输入的二维向量x中解包出v、u v, u = x a = 0.02 b = 0.2 I = 10. # 注意:Python中幂运算需使用**,^为按位异或运算符,原写法会得到错误计算结果 return (0.04 * v**2 + 5 * v + 140 - u + I, a * (b * v - u))
调用时直接传入长度为2的序列即可,支持列表、元组、numpy数组等类型作为x的入参,示例:
# 示例调用,x为列表,t=0,p=1.5 res = f([-65, 0], 0, 1.5)
带类型标注的实现
如果需要明确参数类型提升代码可读性,可以增加类型提示:
import numpy as np from typing import Tuple, Union, List def f( x: Union[Tuple[float, float], List[float], np.ndarray], t: float, p: float ) -> Tuple[float, float]: v, u = x a = 0.02 b = 0.2 I = 10. return (0.04 * v**2 + 5 * v + 140 - u + I, a * (b * v - u))
内容的提问来源于stack exchange,提问作者Floor Molina
相关产品推荐
相关产品推荐

