马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
某线性系统(一种速度反馈液压放大器的简化),微分方程为:- dy=5*((u[t]+0.5)*sqrt(8-y[t])-sqrt(y[t]+2))/(sqrt(8-y[t])-2);
- for(i=0;i<100;i++)u[i];
- for(j=0;j<100;j++)
- {
- for(i=0;i<j+1;i++)
- u[i]=0.1;
- ApartTwoVolterra(u,y2);//各阶输出隔离
- for(i=0;i<100-j;i++)
- {
- b=y2[i+1+j]/0.01/pow(0.01,2);
- for(k=I;k<i+j+1;k++)
- for(h=k;h<i+j+1;h++)
- b=b-jie2[k*100+h];
- jie2[i*100+i+j]=jie[(i+j)*100+i]=b/2;
- }
- }
- Void ApartTwoVolterra(double*u,double*y)
- {//省略变量定义
- for(j=0;j<10;j++)
- {
- for(i=0;i<Flong;i++)u[i]=u[i]*1.2
- for(i=0.y[0]=0;i<Flong;i++)
- {
- dy=5*((u[t]+0.5)*sqrt(8-y[t])-sqrt(y[t]+2))/(sqrt(8-y[t])-2);
- y[i+1]=y[i]+dy*0.01;//简化的仿真过程
- y1[j*Flong+i]=y[i];
- }
- }
- for(i=o;i<10;i++)
- for(j=0;j<6;j++)
- a[i*6+j]=pow(pow(1.2,i),j+1);
- for(i=0;i<Flong;++)
- {
- for(j=0;j<10;j++)
- b[j]=y1[j*Flong+i];
- equation(a,b,x,10,6);//调用10X6的线性方程组的最小二乘解函数
- y[i]=x[1];
- }
- }
复制代码 这是Volterra函数二阶核的简化求解程序。我看不是很懂。希望大侠们帮忙给我做个完整一点的。感激不尽!
[ 本帖最后由 风花雪月 于 2008-8-21 10:26 编辑 ] |