急微积分用C语言如何表达编程,多谢了
急急急,微积分用C语言怎么表达编程,谢谢了急急急,微积分用C语言怎么表达编程,谢谢了, 例如: adx/dt[最优
急急急,微积分用C语言怎么表达编程,谢谢了
急急急,微积分用C语言怎么表达编程,谢谢了, 例如: a=dx/dt
[最优解释]
比如定义几个组全局变量
volatile double V_previous, V_Current;
volatile double dV;
volatile double iV;
V_previous代表前一次V的值。
V_current代表这一次V的值。
dV是微分
iV是积分
如果有必要,可以自行加上时间戳和存储缓冲区用来统计数据。
需要一个函数对上述变量初始化
void Var_Init(void)
{
V_previous = V_Current = dV = iV = 0;
}
假设下面这个函数严格地每隔时间t执行一次,而且这个t就是符合你分辨率要求的单位时间dt。比如t=1ms,则程序开始运行时是t0,一直执行到时刻t(n-1),tn。
void Scheduled_Task(void)
{
V_previous = V_Current; // 将t(n-1)次的旧数据存在previous变量中
V_Current = **********; // 获取最新一次的数据,取决于你的数据源
dV = V_Current - V_previous; // 减法做微分
iV += V_Current; // 加法做积分
}
[其他解释]高等数学里的微积分是连续的。CPU这种时序电路按拍运行属于离散系统。你的dt在计算机里不可能趋于无穷小,而是有个最小值。这个取决于你的算法执行周期。
微分可以用减法或除法,积分用加法。
[其他解释]基于PID的水温控制系统
http://download.csdn.net/detail/lingyun3429/2279932
我调试过的,你可以参考一下。
[其他解释]呃,按要求的精确度做吧
[其他解释]C语言表达一下a=dv/dt可以吗?a代表加速度;v代表速度;t是时间。
谢谢 了Alex_rcpilot
[其他解释]有了dV和dt的值,a是用一个常数乘以dV。常数是多少取决于a和V的量纲,以及dt的具体值。这种中学知识就不用赘述了吧。
[其他解释]看看计算方法和数值计算。
[其他解释]真不好表达,需针对具体的函数。
[其他解释]以前真的没有想到这点,做小车时,没有想到这样去测速度!谢谢分享,学习了!
[其他解释]C 语言算法手册基本囊括你想要的算法,去看看
[其他解释]谢谢大家,看来想要弄明白,要学的东西还真不少啊。。