首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

急微积分用C语言如何表达编程,多谢了

2012-12-16 
急急急,微积分用C语言怎么表达编程,谢谢了急急急,微积分用C语言怎么表达编程,谢谢了, 例如: adx/dt[最优

急急急,微积分用C语言怎么表达编程,谢谢了

急急急,微积分用C语言怎么表达编程,谢谢了, 例如: a=dx/dt
[最优解释]

引用:
引用:高等数学里的微积分是连续的。CPU这种时序电路按拍运行属于离散系统。你的dt在计算机里不可能趋于无穷小,而是有个最小值。这个取决于你的算法执行周期。

微分可以用减法或除法,积分用加法。

C语言表达一下a=dv/dt可以吗?a代表加速度;v代表速度;t是时间。
谢谢 了Alex_rcpilot


比如定义几个组全局变量 
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
我调试过的,你可以参考一下。
[其他解释]
呃,按要求的精确度做吧
[其他解释]
引用:
高等数学里的微积分是连续的。CPU这种时序电路按拍运行属于离散系统。你的dt在计算机里不可能趋于无穷小,而是有个最小值。这个取决于你的算法执行周期。

微分可以用减法或除法,积分用加法。


C语言表达一下a=dv/dt可以吗?a代表加速度;v代表速度;t是时间。
谢谢 了Alex_rcpilot
[其他解释]
引用:
引用:高等数学里的微积分是连续的。CPU这种时序电路按拍运行属于离散系统。你的dt在计算机里不可能趋于无穷小,而是有个最小值。这个取决于你的算法执行周期。

微分可以用减法或除法,积分用加法。

C语言表达一下a=dv/dt可以吗?a代表加速度;v代表速度;t是时间。
谢谢 了Alex_rcpilot


有了dV和dt的值,a是用一个常数乘以dV。常数是多少取决于a和V的量纲,以及dt的具体值。这种中学知识就不用赘述了吧。
[其他解释]
看看计算方法和数值计算。
[其他解释]
真不好表达,需针对具体的函数。
[其他解释]
以前真的没有想到这点,做小车时,没有想到这样去测速度!谢谢分享,学习了!
[其他解释]
C 语言算法手册基本囊括你想要的算法,去看看
[其他解释]
谢谢大家,看来想要弄明白,要学的东西还真不少啊。。

热点排行