#include <stdio.h>
#include <math.h>
#include <time.h>
#define count 10000
#define error 0.000001 // 收敛标尺数
#define N 41
#define M 11
#define PI 3.1415926
#define NULL 0
#define A (0.5)
#define XN (30.5)
#define X0 (-56.86)
void main(){
//简单点迭代
double judge(double x[N][M], double y[N][M]);
double arcsh(double x);
void solve(double x[N][M],double y[N][M],double X[N][M],double Y[N][M]);
void print(double x[N][M],double y[N][M]);
//函数声明
int flag=1,i=0,j=0,k=0;
//定义变量,x为前一时刻的,y为后一时刻的温度值,i,j,k分别为循环参数
double x[N][M],y[N][M],X[N][M],Y[N][M];
double start,end;
//边界条件,垂直边界
for(i=0;i<N;i++){
y[i][0]=Y[i][0]=0;
x[i][0]=X[i][0]=x[i][M-1]=X[i][M-1]=sinh(i*(arcsh(A*XN)-arcsh(A*X0))/(N-1)+arc
sh(A*X0))/A;
// printf("X[%d][0]=%f",i,x[i][M-1]);
if(x[i][M-1]<-42.49)
y[i][M-1]=Y[i][M-1]=43.18+sqrt(20.32*20.32-(-56.86-x[i][M-1])*(-56.86-x[i][M-1
]));
else if((x[i][M-1]>-42.49)&&(x[i][M-1]<-8.98))
y[i][M-1]=Y[i][M-1]=15.06-x[i][M-1];
else if(x[i][M-1]<3.287)
y[i][M-1]=Y[i][M-1]=33.02-sqrt(12.7*12.7-x[i][M-1]*x[i][M-1]);
else
y[i][M-1]=Y[i][M-1]=0.268*x[i][M-1]+19.867;
// printf("X[%d][0]=%f",i,Y[i][M-1]);
评论0