隐式有限差分编程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{
m[i]=a;
q[i]=b-g[i-1]*m[i];
g[i]=c/q[i];
}
Z[0]=10;
/*解三对角线方程的算法第二步和第三步*/
for(k=0;k<N-1;k++) for(i=N-2;i>0;i--) {
for(j=1;j<N;j++) {
f[j]=-(u*x*x*h[j][k])/t; if(j==1) Z[j]=(f[j]-a*h[0][k+1])/q[j]; else if(j==N-2) Z[j]=(f[j]-c*h[j+1][k+1]-a*Z[j-1])/q[j];
#include <stdio.h>
#include <stdlib.h>
#define N 11
void main()
{
int i,k,j;
long double x=1000,T=1000,u=0.001;
long double h[N][N]={0},f[N]={0},Z[N]={0};
long double g[N]={0},m[N]={0},q[N]={0};
long double a,b,c,t;
for(i=0,k=0;k<N;k++)
h[i][k]=10.00;
for(i=1,k=0;i<N;i++)
h[i][k]=0.00;
for(i=10,k=0;k<N;k++)
h[i][k]=0.00;
t=1.0ቤተ መጻሕፍቲ ባይዱ;
while(t>0)
/*解三对角线方程的算法第一步*/
else Z[j]=(f[j]-a*Z[j-1])/q[j]; } if(i==N-2) h[i][k+1]=Z[i]; if(i!=N-2) h[i][k+1]=Z[i]-g[i]*h[i+1][k+1]; } printf("结果如下:\n\n"); for(i=1;i<N;i++) printf(" %d ",i); printf("\n"); printf("_________________________________________________________________________ _____"); printf("\n"); for(k=1;k<N;k++) { for(i=1;i<N;i++) printf( "%.4f ",h[i][k]); printf("\n"); } } }
{
printf("请输入时间步长 t 的值:");
scanf("%lf",&t);
if(t<=0)
{
printf(" 输入有误! \n");
exit(0);
}
printf("\n");
a=T;
c=a;
b=-(2*T+(u*x*x)/t);
g[1]=c/b;
m[1]=a;
q[1]=b;
for(i=2;i<N;i++)