- 7
- 0
- 约4.1千字
- 约 21页
- 2019-05-08 发布于浙江
- 举报
线性方程组的数值解法
一、下三角方程组的解法
对于线性方程组:
即:
∴
写成通式的形式:
C++源程序:
#include iostream.h
const int n=4;
void LYB(double L[n][n+1])
{
for(int i=0;in;i++)
{
for(int j=0;j=i-1;j++)
L[i][n]-=L[i][j]*L[j][n];
}
}
void main()
{
double L[n][n+1]={{1,0,0,0,4},{1,1,0,0,7},
{1,-1,1,0,3},{1,-1,-1,1,0}};
LYB(L);
for(int i=0;in;i++)
coutY[i]=L[i][n]endl;
}
二、上三角方程组的解法
对于线性方程组:
即:
∴
写成通式的形式:
#include iostream.h
const int n=4;
void UXY(double U[n][n+1])
{
for(int i=n-1;i=0;i--)
{
for(int j=i+1;j=n-1;j++)
U[i][n]-=U[i][j]*U[j][n];
U[i][n]/=U[i][i];
}
}
void main()
{
double U[n][n+1]={{1,-1,-1,1,0},{0,1,-1,1,3},
{0,0,1,1,3},{0,0,0,1,2}};
UXY(U);
for(int i=0;in;i++)
coutX[i]=U[i][n]endl;
}
三、GAUSS消去法解线性方程组
1、消去目标
2、消去过程(假定在以下消去演算中不会出现分母为0的情况)
为直观起见,我们把方程组写成如下形式:
第0步,实现第0列目标:消去第(1)、(2)、……、(n-1)中的项,(0)式保持不变。
方法:
即:
注意:
j=0可以不算,如果要算,其结果肯定是0。
经第一步计算后,方程组变成了如下形式:
第1步:在第0步成果的基础上,实现第1列目标:消去第(2)、(3)、……、(n-1)中的项,(0)、(1)式保持不变。
方法:
即:
经第二步计算后,方程组变成了如下形式:
由第一步、第二步的消去过程,不难归纳出任意一步(第k步)的计算通式:
Gauss消去法已经将原方程组变形为上三角方程组,逆序回代容易求出最后结果。
在第k步Gauss消去法中,要用到做分母,这就严格要求的绝对值不能太小。对于事先无法估计的值,解决办法是:
每步消去之前,先考察待消去的几个方程的绝对值大小,并交换方程次序,以保证绝对值最大。
程序设计思路:
设计数组,其中前面的0至n-1列存放方程组的系数矩阵,第n列存放常数项。
设计求列中最大值函数,为选择主元作准备。
设计一个交换数据函数,为交换方程做准备,
设计一个消去函数,其中要调用求列中最大值函数确定主元,要调用交换数据函数来交换方程
调用上三角方程组的求解函数求出最终解。
主函数准备数据、调用有关函数、输出结果
课堂练习:编程实现用Gauss消去法解任意大小的方程组。
#include iostream.h
#include math.h
const int n=4;
/*下面是求列中最大值函数,考察范围是:a[k][k]、a[k+1][k]、……、a[n-1][k],返回结果是主元的行号,为选择主元作准备。*/
int Max(double a[n][n+1],int k)
{
int t=k;
double max=fabs(a[k][k]);
for(int i=k+1;i=n-1;i++)
{
if(fabs(a[i][k])max)
{
t=i;
max=fabs(a[i][k]);
}
}
return t;
}
/*下面是一个交换第k行和第t行方程的函数,选主元的后续工作*/
void change(double a[n][n+1],int k,int t)
{
double x;
for(int j=k;j=n;j++)
{
x=a[k][j];
a[k][j]=a[t][j];
a[t][j]=x;
}
}
/*下面是高斯消去法的核心函数,其中调用求主元、交换方程函数*/
void gauss(double a[n][n+1])
{
for(int k=0;kn-1;k++)
{
int t=Max(a,k);
if(t!=k)
change(a,k,t);
for(int i=k+1;in;i++)
for(int j=k+1;j=n;j++)
您可能关注的文档
最近下载
- (高清版)DB13∕T 5181-2020 尾矿库溃坝泥石流数值模拟技术规程.pdf VIP
- 2026北京资产管理有限公司业务总监招聘1人备考题库有答案详解.docx VIP
- ZHJZIV火焰检测系统用户手册[中文C版].doc VIP
- DB37_T 5249-2023城市园林绿化精细化养护管理标准.pdf VIP
- DataXone数据与大数据云交换平台白皮书.pdf VIP
- 超声肝脏弹性科普.pptx VIP
- 2026北京资产管理有限公司业务总监招聘1人备考题库及答案详解一套.docx VIP
- 日立电梯HE12控制系统故障处理资料.pdf
- 2024--2025学年福建省厦门市双十中学八年级下学期期中历史试题.doc VIP
- 员工激励机制研究 毕业论文.doc VIP
原创力文档

文档评论(0)