求k=10时,x(k)=?

dx/dt=0.5x + 2u
u=kp*(0-x)
x(k+1)=x(k)+ 0.02*dx(k)/dt
k在0-100之间

dx/dt 直接用?

x(k+1)=x(k)+ 0.02*dx(k)/dt
等价于
x(k+1)=x(k)+ 0.02*(0.5 * x(k) + 2u)
等价于
x(k+1)=x(k)+ 0.02*(0.5 * x(k) + 2 * (kp*(0-x(k))))
在这里面
kp 是什么?


#include <stdio.h>
float x(int n)
{
    //x(k+1)=x(k)+ 0.02*(0.5 * x(k) + 2 * (kp*(0-x(k))))
    if(n == 0) 
        return 1.0;
    else 
        return x(n - 1) + 0.02 * (0.5 * x(n - 1) + 2 * ((n - 1) * 1.0 * (0 - x(n - 1))));
}

int main()
{
    int N;
    scanf("%d", &N);
    int i;
    for (i = 0; i <= N; i++) {
        printf("x(%d)=%f\n",i,x(i));
    }    
    return 0;
}

img

你把问题详细点说明啊