读书人

解议程组遇到的有关问题

发布时间: 2012-03-06 20:47:55 作者: rapoo

解议程组遇到的问题
已知 4*u1 - u2 = 0
4*u2 - u1 - u3 = 0
4*u3 - u2 = 100

又u1[k+1] = u2[k]/4
u2[k+1] = (u1[k+1] + u3[k])/4
u3[k+1] = u2[k+1]/4 + 25


给定抚今迭代初值 u1[0] = 2 u2[0] = 7.5 u3[0] = 30
条件是un[k+1]-un[k] <某一个很小的数

我是这样设计的

#include <stdio.h>

int main (void)
{
int k;
float u1[k],u2[k],u3[k];

u1[0]= 0;
u2[0]= 0;
u3[0]= 0;

float w = 0.01;

u1[k+1] = u2[k]/4;
u2[k+1] = (u1[k+1]+u3[k])/4;
u3[k+1] = u2[k+1]/4 + 25;


for (k=0;k <=20000;)
{if (4*u1[k+1] - u2[k+1] <10)
{if (4*u2[k+1] - u1[k+1] - u3[k+1] < 10)
{if ( 4*u3[k+1] - u2[k+1] - 100 <10)
printf ( "u1 is %f u2 is %f u3 is %f ",u1[k+1], u2[k+1], u3[k+1]);
}
}
}

return 0;
}


编译没有错误可是执行时没有结果输出 找了半天也没有发现错误

请高手们指出错误在哪里?

[解决办法]
int k; <----- k的初值是什么?
float u1[k],u2[k],u3[k]; <-- u1 u2 u3 的大小是多少?

下面更离谱,u1 u2 u3 上面已经设定了大小为 k, 那么 u1[k+1] 是什么意思?
u1[k+1] = u2[k]/4;
u2[k+1] = (u1[k+1]+u3[k])/4;
u3[k+1] = u2[k+1]/4 + 25;

读书人网 >C++

热点推荐