版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
偏微分方程数值解程序作业二维热传导#include"iostream"#include"math.h"#include"stdio.h"#defineTT0.1//要求的t的值#definePI3.1415926535usingnamespacestd;#defineN11//跳点全局变量doubledot_sheet_b[N][N];doubledot_sheet_t[N][N];//显示全局变量doubledot_sheet_old[N][N];doubledot_sheet_new[N][N];doublelamda=0.5;//lamda=a*t/powf(h,2)doubleh1=0.1,h2=0.1;voidget_next_dot(inti,intj);voidinitial(void);voidinitial(void);voidvoidget_next_2_layer(void);//每次得到两层voidget_next_1_layer(void);//显示一次获得一层voidmain(void){inti,j;//行列计数使用initial();get_next_2_layer();cout<<"output_line"<<endl;for(i=1;i<N-1;i++)//输出跳点格式的(半隐式){for(j=1;j<N-1;j++)printf("%.3f|",dot_sheet_b[i][j]);cout<<endl;}printf("**************隐式结果***************\n");initial1();get_next_1_layer();for(i=1;i<N-1;i++)//输出显示方式的{for(j=1;j<N-1;j++)printf("%.3f|",dot_sheet_new[i][j]);cout<<endl;}printf("***************显示结果*******************\n");}voidget_next_1_layer(void)//显示一次获得一层{doubledelt_x2,delt_y2;inti,j;for(i=1;i<N-1;i++){for(j=1;j<N-1;j++){delt_x2=(dot_sheet_old[i+1][j]-2*dot_sheet_old[i][j]+dot_sheet_old[i-1][j]);delt_y2=(dot_sheet_old[i][j+1]-2*dot_sheet_old[i][j]+dot_sheet_old[i][j-1]);dot_sheet_new[i][j]=dot_sheet_old[i][j]+lamda*(delt_x2+delt_y2);}}}voidget_next_2_layer(void)//跳点格式一次获得两层{doubledelt_x2,delt_y2;inti,j;for(i=1;i<N-1;i++)////奇数,显示方式{for(j=(i+1)%2+1;j<N-1;j+=2){delt_x2=(dot_sheet_t[i+1][j]-2*dot_sheet_t[i][j]+dot_sheet_t[i-1][j]);delt_y2=(dot_sheet_t[i][j+1]-2*dot_sheet_t[i][j]+dot_sheet_t[i][j-1]);dot_sheet_b[i][j]=dot_sheet_t[i][j]+lamda*(delt_x2+delt_y2);//printf("%.3f|",dot_sheet_b[i][j]);}//cout<<endl;}for(i=1;i<N-1;i++)////偶数,显示方式{for(j=(i)%2+1;j<N-1;j+=2){delt_x2=(dot_sheet_t[i+1][j]-2*dot_sheet_t[i][j]+dot_sheet_t[i-1][j]);delt_y2=(dot_sheet_t[i][j+1]-2*dot_sheet_t[i][j]+dot_sheet_t[i][j-1]);dot_sheet_b[i][j]=lamda*(delt_x2+delt_y2)+dot_sheet_t[i][j];// printf("%.3f|",dot_sheet_b[i][j]);}//cout<<endl;}cout<<"***********************************************************"<<endl;for(i=1;i<N-1;i++)//第2层{for(j=1;j<N-1;j++){dot_sheet_t[i][j]=2*dot_sheet_b[i][j]-dot_sheet_t[i][j];// printf("%.4f|",dot_sheet_t[i][j]);//第二层输出屏蔽,暂时只输出第一层}//cout<<endl;}}voidinitial(void)//跳点格式初始化{for(inti=0;i<N;i++)dot_sheet_t[i][0]=dot_sheet_t[i][N-1]=0;for(intj=0;j<N;j++)dot_sheet_t[0][j]=dot_sheet_t[N-1][j]=0;for(i=1;i<N-1;i++){for(j=1;j<N-1;j++){dot_sheet_b[i][j]=dot_sheet_t[i][j]=sin((h1*i+h2*j)*PI);printf("%.4f|",dot_sheet_t[i][j]);}cout<<endl;}printf("************初始化底层**********************\n");}voidinitial1(void)//显示初始化{for(inti=0;i<N;i++)dot_sheet_old[i][0]=dot_sheet_old[i][N-1]=0;for(intj=0;j<N;j++)dot_sheet_old[0][j]=dot_sheet_old[N-1][j]=0;for(i=1;i<N-1;i++){for(j=1;j<N-1;j++){dot_sheet_old[i][j]=sin((h1*i+h2*j)*PI);}}printf("**************初始化底层1*******************\n");}一维热传导 向前差分#include"iostream"#include"math.h"#include"stdio.h"#defineTT0.1//要求的t的值#definePI3.1415926535usingnamespacestd;voidmain(void){doubler=0.1;//0.5doublestep_h=0.1;doublestep_t;//初始化无任何意义introw1,cln1,row_max;step_t=r*(step_h*step_h);//printf("row_max=%f\n",step_t);row_max=TT/step_t+1;//认为是第rowmaxprintf("row_max=%d\n",row_max);doublematrix_u[20][11];//一行共11个点//以下为带入边界条件for(cln1=0;cln1<=10;cln1++)matrix_u[0][cln1]=sin(PI*step_h*cln1);for(row1=0;row1<=row_max;row1++)matrix_u[row1][0]=matrix_u[row1][10]=0;for(row1=1;row1<=row_max;row1++)for(cln1=1;cln1<=9;cln1++)matrix_u[row1][cln1]=r*(matrix_u[row1+1][cln1-1]+matrix_u[row1-1][cln1-1])+(1-r)*(matrix_u[row1][cln1-1]);for(cln1=0;cln1<=10;cln1++){printf("matrix_u[%d][%d]=%.5f\n",row1-1,cln1,matrix_u[row1-1][cln1]);printf("theexactvalue=%.5f\n",exp(-PI*PI*(row_max-1)*step_t)*sin(PI*step_h*cln1));}}向后差分格式#include"iostream"#include"math.h"#include"stdio.h"#include"malloc.h"#defineTT0.1//要求的t的值#definePI3.1415926535usingnamespacestd;voidzhuigan(double*A,double*B,double*C,double*D,intn)//n表示矩阵的维数,就是行数。{inti;B[1-1]=B[1-1];D[1-1]=D[1-1]/B[1-1];for(i=2;i<=n;i++){C[i-2]=C[i-2]/B[i-2];B[i-1]=B[i-1]-A[i-1]*C[i-2];D[i-1]=(D[i-1]-A[i-1]*D[i-2])/B[i-1];}for(i=n-1;i>=1;i--)D[i-1]-=C[i-1]*D[i];}//endoffunctionvoidmain(void){doubler=0.1;//0.5doublestep_h=0.1;doublestep_t;//introw1,cln1,row_max;step_t=r*(step_h*step_h);printf("step_t=%f\n",step_t);row_max=TT/step_t+1;//认为是第rowmaxprintf("row_max=%d\n",row_max);//追赶系数矩阵赋值doublem_a[9],m_b[9],m_c[9],m_d[9];doublem_a_temp[9],m_b_temp[9],m_c_temp[9];//必须的//doublel_l[9],r_r[9],r_y[9];for(row1=1;row1<=9;row1++){m_b[row1-1]=1+2*r;}for(row1=2;row1<=9;row1++)m_a[row1-1]=-r;for(row1=1;row1<=9-1;row1++)m_c[row1-1]=-r;for(cln1=1;cln1<=9;cln1++)m_d[cln1-1]=sin(PI*step_h*cln1);for(row1=1;row1<row_max;row1++){for(cln1=1;cln1<=9;cln1++){m_a_temp[cln1-1]=m_a[cln1-1];m_b_temp[cln1-1]=m_b[cln1-1];m_c_temp[cln1-1]=m_c[cln1-1];}zhuigan(m_a_temp,m_b_temp,m_c_temp,m_d,9);}for(row1=1;row1<=9;row1++){printf("d%.4f",m_d[row1-1]);}cout<<endl;cout<<"theexactvalue="<<endl;for(cln1=1;cln1<=9;cln1++)printf("E%.4f",exp(-1*PI*PI*(row_max-1)*step_t)*sin(PI*step_h*cln1));}//endofmain六点格式#include"iostream"#include"math.h"#include"stdio.h"#include"malloc.h"#defineTT0.1//要求的t的值#definePI3.1415926535usingnamespacestd;voidzhuigan(double*A,double*B,double*C,double*D,intn){inti;B[1-1]=B[1-1];D[1-1]=D[1-1]/B[1-1];for(i=2;i<=n;i++){C[i-2]=C[i-2]/B[i-2];B[i-1]=B[i-1]-A[i-1]*C[i-2];D[i-1]=(D[i-1]-A[i-1]*D[i-2])/B[i-1];}for(i=n-1;i>=1;i--)D[i-1]-=C[i-1]*D[i];}//endoffunctionvoidmain(void){doubler=0.1;//0.5doublestep_h=0.1;doublestep_t;//introw1,cln1,row_max;step_t=r*(step_h*step_h);printf("step_t=%f\n",step_t);row_max=TT/step_t+1;//认为是第rowmaxprintf("row_max=%d\n",row_max);//追赶系数矩阵赋值doublem_a[9],m_b[9],m_c[9],m_d[9],u_d[11];//u_d是要求的值,m_d使方程用的doublem_a_temp[9],m_b_temp[9],m_c_temp[9];//必须的//doublel_l[9],r_r[9],r_y[9];for(row1=1;row1<=9;row1++)m_b[row1-1]=1+r;for(row1=2;row1<=9;row1++)m_a[row1-1]=-r/2;for(row1=1;row
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2021高考化学(广东专用)二轮考点突破-第五部分-化学实验-专题二十三-实验方案的设计与评价-
- 2020采购员个人工作计划范文
- 2025年人教版八年级数学寒假预习 第12讲 菱形的性质与判定(2个知识点+6大考点举一反三+过关测试)
- 学校化学教师个人工作总结
- 2020年小学教学论文开题报告范文
- 【导与练】2021届高三物理大一轮复习(人教版适用)训练题:章末定时练3
- 陕西省渭南市尚德中学2024-2025学年高一上学期第二次阶段性物理试卷(含答案)
- 辽宁省沈阳市名校2024-2025学年七年级上学期期末考试地理试题(含答案)
- 吉林省松原市前郭五中2024~2025学年高二上期末考试 生物(含答题卡、答案)
- 【名师金典】2022新课标高考生物总复习限时检测15孟德尔的豌豆杂交实验(二)-
- 1.1、供应商管理控制流程与风险控制流程图
- 初二年级劳动课教案6篇
- 箱变迁移工程施工方案
- 北师大版九年级数学下册《圆的对称性》评课稿
- 《遥感原理与应用》期末考试试卷附答案
- 物流无人机垂直起降场选址与建设规范(征求意见稿)
- 工程分包管理制度
- 2023年湖南成人学位英语考试真题
- GB/T 9452-2023热处理炉有效加热区测定方法
- 肺炎支原体肺炎诊治专家共识
- 药物化学(第七版)(全套课件1364P)
评论
0/150
提交评论