解议程组遇到的有关问题
解议程组遇到的问题
已知 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;
已知 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;