下载此文档

线性方程组求解的数值实验报告.doc


文档分类:IT计算机 | 页数:约3页 举报非法文档有奖
1/3
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/3 下载此文档
文档列表 文档介绍
线性方程组求解的数值实验
一、课题名称:双对角线线性方程组的数值实验
二、班级和姓名:09101900 张争(学号 0910190161)
三、实验问题摘要:
考虑一种特殊的对角线元素不为零的双对角线线性方程组(以n=7为例)
=
写出解一般的n(奇数)阶方程组的程序(不要用消元过程,因为不用它可以十分方便的解出这个方程组)。
四、过程中的问题及处理方法:
解方程组时应当先解出x1和xn,r然后根据公式求出其他的解,由于矩阵的特殊性,应该从头尾开始解,最后解出。编程序时使用循环语句要分情况讨论。
五、计算公式:
=
(k<n/2)
=
(k>n/2)

六、结构程序设计
输入矩阵阶数输入各系数解出前(n-1)/2个解解出后(n-1)/2个解解出第(n+1)/2个解
七、程序运行结果:
这里令所有的系数等于1,实验结果如下:
八、主要程序段介绍:
解方程函数:由于矩阵具有好的对称性,解的形式也一样,用循环语句。但是第一个和最后一个解以及中间一个解的形式不同,需要单独解出,程序如下:
void jiefangcheng()
{
int i;
x[1]=b[1]/d[1];
for(i=2;i<(i+1)/2;i++)
x[i]=(b[i]-a[i-1]*x[i-1])/d[i];
x[n]=b[n]/d[n];
for(i=n-1;i>(i+1)/2;i--)
x[i]=(b[i]-a[i]*x[i+1])/d[i];
x[(n+1)/2]=(a[(n-1)/2]*x[(n-1)/2]-a[(n+1)/2]*x[(n+3)/2])/d[(n+1)/2];
}
九、源程序如下:
//*****************张争******学号0910190161**********
#include<>
#define N 10000
int n;
int a[N],b[N],d[N],x[N];
void input()
{
int i;
cout<<"请输入方程组的阶数:";
cin>>n;
cout<<"请输入方程组的系数:"<<endl;
for(i=1;i<=n;i++)
{
cout<<"d"<<i<<"=";
cin>>d[i];
cout<<"b"<<i<<"=";
cin>>b[i];
}
for(i=1;i<n;i++)
{
cou

线性方程组求解的数值实验报告 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数3
  • 收藏数0 收藏
  • 顶次数0
  • 上传人63229029
  • 文件大小78 KB
  • 时间2017-09-04