资源简介
Fredholm积分方程的数值解Fredholm积分方程的数值解Fredholm积分方程的数值解Fredholm积分方程的数值解Fredholm积分方程的数值解Fredholm积分方程的数值解Fredholm积分方程的数值解Fredholm积分方程的数值解Fredholm积分方程的数值解
代码片段和文件信息
#include
#include
#define N 7//复化梯形2602结点,复化simpson 83个节点 高斯7个节点
void main()
{
void Doolittle(double *A[]double B[N+1]double X[N+1]);//Doolittle分解法
void ftrapezium(double f[N+1]double X[N+1]);//复化梯形算法
void fsimpson(double f[N+1]double X[N+1]);//复化Simpson算法
void GaussLegendre(double f[N+1]double X[N+1]);//Gausse型积分公式
double K(double xdouble y);
double g(double x);
double U(double x);
int i=1jk;double X[N+1]f[N+1];
/*ftrapezium(fX);
do
{
printf(“精确值为%f“U(X[i]));printf(“数值解为:%f“f[i]);printf(“ “);printf(“结点值为:%f“X[i]);
printf(“\n“);i=i+10;
}while(i<=N);*/
/*fsimpson(fX);
for(i=1;i<=N;i++)
{
printf(“精确值为%f“U(X[i]));printf(“数值解为:%f“f[i]);printf(“ “);printf(“结点值为:%f“X[i]);
printf(“\n“);
}*/
GaussLegendre(fX);
for(i=1;i<=N;i++)
{
printf(“精确值为%f“U(X[i]));printf(“数值解为:%f“f[i]);printf(“ “);printf(“结点值为:%f“X[i]);
printf(“\n“);
}
}
void Doolittle(double *A[]double B[N+1]double X[N+1])
{
int ijktl;double m=0n=0;double Y[N+1];
for(k=1;k<=N;k++)//求D、U
{
for(j=k;j<=N;j++)//U
{
m=0;
for(t=1;t<=k-1;t++)
{m+=A[k][t]*A[t][j];}
A[k][j]=A[k][j]-m;
}
for(i=k+1;i<=N;i++)//D
{
n=0;
for(l=1;l<=k-1;l++)
{n+=A[i][l]*A[l][k];}
A[i][k]=(A[i][k]-n)/A[k][k];
}
}
Y[1]=B[1];//回代过程1
for(i=2;i<=N;i++)
{
m=0;
for(t=1;t<=i-1;t++)
m+=A[i][t]*Y[t];
Y[i]=B[i]-m;
}
X[N]=Y[N]/A[N][N];//回代过程2
for(i=N-1;i>=1;i--)
{
n=0;
for(t=i+1;t<=N;t++)
n+=A[i][t]*X[t];
X[i]=(Y[i]-n)/A[i][i];
}
}
double K(double xdouble y)
{
return exp(x*y);
}
double g(double x)
{
return exp(4*x)+(exp(x+4)-exp((-1)*(x+4)))/(x+4);
}
double U(double x)
{
return exp(4*x);
}
void ftrapezium(double f[N+1]double X[N+1])//复化梯形算法
{
double h=0;int ijk;
double** A=new double*[N+1];//动态二维数组
for(i=1;i<=N;i++)
A[i]=new double[N+1];
double B[N+1];
h=2.0/(N-1);
for(i=1;i<=N;i++)
X[i]=-1+(i-1)*h;
for(i=1;i<=N;i++)//对矩阵的赋值
for(j=1;j<=N;j++)
{
if(j==i)
A[i][j]=1+h*exp(X[i]*X[i]);
else
A[i][j]=h*exp(X[i]*X[j]);
}
for(i=1;i<=N;i++)
{
A[i][1]=(h/2)*exp(X[i]*X[1]);
A[i][N]=(h/2)*exp(X[i]*X[N]);
}
A[1][1]=1+(h/2)*exp(X[1]*X[1]);
A[N][N]=1+(h/2)*exp(X[N]*X[N]);
for(i=1;i<=N;i++)
B[i]=g(X[i]);
Doolittle(ABf);
double t=0;
for(i=2;i<=N-1;i++)
t=t+h*fabs(f[i]-U(X[i]))*fabs(f[i]-U(X[i]));
t=t+0.5*h*fabs(f[1]-U(X[1]))*fabs(f[1]-U(X[1]));
t=t+0.5*h*fabs(f[N]-U(X[N]))*fabs(f[N]-U(X[N]));
printf(“t=%.12e“t);printf(“\n“);
}
void fsimpson(double f[N+1]double X[N+1])//复化Simpson算法
{
double h=0m;int ijk;
double** A=new double*[N+1];//动态二维数组
for(i=1;i<=N;i++)
A[i]=new double[N+1];
double B[N+1];
h=2.0/(N-1);
m=(N-1)/2;
for(i=1;i<=N;i++)
X[i]=-1+(i-1)*h;
for(i=1;i<=N;i++)//对矩阵的赋值
for(j=1;j<=N;j++)
{
if(j==i)
{
if(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4725 2009-05-31 09:25 第三次大作业\Cpp1.cpp
文件 3377 2009-05-31 09:19 第三次大作业\Cpp1.dsp
文件 516 2009-05-31 09:41 第三次大作业\Cpp1.dsw
文件 50176 2009-05-31 09:41 第三次大作业\Cpp1.ncb
文件 48640 2009-05-31 09:41 第三次大作业\Cpp1.opt
文件 673 2009-05-31 09:41 第三次大作业\Cpp1.plg
文件 217187 2009-05-31 09:25 第三次大作业\Debug\Cpp1.exe
文件 15102 2009-05-31 09:41 第三次大作业\Debug\Cpp1.obj
文件 476160 2009-05-31 09:25 第三次大作业\Debug\Cpp1.pdb
文件 86016 2009-05-31 09:25 第三次大作业\Debug\vc60.pdb
目录 0 2009-07-14 22:18 第三次大作业\Debug
目录 0 2009-10-30 01:10 第三次大作业
----------- --------- ---------- ----- ----
902572 12
- 上一篇:简单的房屋租赁系统
- 下一篇:机器人单机械臂滑模控制程序
相关资源
- 数值分析 计算方法 牛顿插值 拉格朗
- 数值分析答案(第五版)李庆扬
- 北京航空航天大学研究生数值分析计
- 数值分析导论 第三版
- 东北大学软件学院数值分析历年试题
- 论文研究 - 从上方加热的半开放式人
- 降雨渗流对边坡稳定性影响的数值分
- 数值分析-研究生课件
- 转子碰摩系统的非线性数值分析
- 吸湿作用对牙齿充填材料的损伤数值
- 黔阳煤矿多煤层采动地表变形破坏数
- 《矩阵论与数值分析理论及其工程应
- 数值分析上机实践报告.docx
- 中国科学院大学数值分析考试试题肖
- 数值分析试卷.pdf
- 数值分析第五版答案(全).docx
- 数值分析ppt清华李庆杨第五版
- 《数值分析》课后习题答案——华中
- 数值分析英文版第2版Timothy Sauer著
- 数值分析李红课后答案
- 数值分析全面指导+分析
- 数值分析第二版张铁编习题答案
- 数值分析第五版课后答案
- 《数值分析》第五版课后习题答案
- 数值分析第4版(李庆扬、王能超、易
- 东南大学数值分析上机题
- 数值分析课后习题答案
- 数值分析课件
- 数值分析第5版课后习题答案
- 武汉大学2017年研究生数值分析期末考
评论
共有 条评论