线性代数方程组的通用性迭代解法的程序实现_第1页
线性代数方程组的通用性迭代解法的程序实现_第2页
线性代数方程组的通用性迭代解法的程序实现_第3页
线性代数方程组的通用性迭代解法的程序实现_第4页
线性代数方程组的通用性迭代解法的程序实现_第5页
已阅读5页,还剩5页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、线性代数方程组的通用性迭代解法的程序实现李安志(成都市510信箱,成都610003摘要给岀利用线性代数方程组的通用性迭代解法求线性代数方程组的一个特解 的算法描述及C语言实现.关键词线性代数方程组;特解;收敛性中图法分类号0214. 5 ; TP3111概述线性代数方程组的通用性迭代解法与传统的迭代解法相比1 :它的算法更简单,收敛速度更快,判断方程是否有解更准确.其思想描述如下:(1)用( , )表示两向量的内积,用II 2表示向量的欧氏范数.定义1. 1将n X m阶线性代数方程组(5 , x) = bi ,( x Rm ,未知),115 i I2 = 1 ,i = 1 ,2, n 19

2、st丄其中X为迭代初值,k为迭代次数,Xk为解的k次近似值. 该算法的正确性证明请参考文献2 .2算法描述2. 1变量说明 head :存放长度为nX ( m + 1)的连续空间的起始地址,该空间用于按行排列 存放方程组的增广矩阵.p ,p1 :分别存放两个长度为 n的连续空间的起始地址,该空间分别用3中国工程物理研究院预研基金资助项目收稿日期 1998 - 05 - 24 李安志 男32岁 讲师第1期李安志:线性代数方程组的通用性迭代解法的程序实现89于存放一次迭代前后的近似解.m , n :分别存放方程组中方程的个数和变量的个数.t:存放迭代的精度.2. 2调用的过程和函数in put (

3、):输入方程组的增广矩阵存放到以head为起始地址的连续空间中,并法式化该方程组.didai ():用迭代法求方程组的根.2. 3算法Procedure didai ()begin(1) 输入m ,n ,t的值;(2) 动态分配连续空间head ,p ,p1 ;(3) input ();初始(4) 化 p ,p1 ; s t) / 3 迭代过程 3 / - begi n(I) for i = 1 to mbegin.-jL En*NF(1) p 0. . n - 1 - p1 0. . n + 1 ;(2) q = 0 . 0 ;鶯*鶯料 %?(3) for k = 0 to n - 1q =

4、 q + head (i - 1) 3 ( n + 1) + k 3 p k ;(4) for k = 0 to n - 1p1 k = p k +(headi 3 (n +1)-1 - q ) 3 head (i- 1) 3 (n + 1) +k ;en d.(n) s = (p1 0. . n - 1 - p 0. . n - 1) X(p1 0. . n - 1 - p 0. . n - 1);(川)s = sqrt ( s);end(7) for i = 1 to m / 3判断p1是否为方程的根3 /begin(i) p 0. . n - 1 - p1 0. . n - 1 ;(ii

5、) q = 0 . 0 ;(iii) for k = 0 to n - 1q = q + head (i - 1) 3 ( n + 1) + k 3 p k ;(iv) for ( k = 0 ; k t) break ;194-201m)输出方程的解p ;else方程无解endp3程序运行例子有方程组为:2 xi+ X2 -5 X3+ X4 = 8 .*jj r*_K粘|1.H T .J.-气匕-=H ” ?-i i*H a,.l- i .:污:.詞|Iii11.li H-%.以二 3严泪工;*1:,: HIAA sA hi v?, II:nJi 1994-2013 Chitia .Acad

6、emic Journal EIcciiroDic Publishing House- All righls Ksorved. fittp:/-,!wwnr. mkh-nct第1期李安志:线性代数方程组的通用性迭代解法的程序实现93# define L EN sizeof( double)double 3 head , 3 p ;int m ,n ;void input () int k ,b ;double d ;printf (“ n请输入方程组中方程的个数m : ”)scarf ( “ %d” , &m);printf (“请输入方程组中变量的个数 n :” ;scarf ( “ d” ,

7、 &n);printf ( “请输入方程组的计算精度t :”;scan ( “ %lf ” , &t);b = m 3 ( n + 1);head = ( double 3 ) calloc (b 丄 EN);p = (double 3 ) calloc ( n 丄 EN);printf (“请输入方程组的增广矩阵: n ”;printf (“开始: n ”);for (k = 1 ; k = m 3 (n + 1) ; k + + )/ 3 输入增广矩阵 3 /scan ( “ %lf ” , &d);head k- 1 = d ;for (k = 1 ; k = m ; k + + )/

8、3 法式化 3 / d = 0 ;for (b = 1 ;b = n ; b + + )d = d + head ( n + 1) 3 ( k - 1) + b - 13 head (n + 1) 3 ( k - 1) + b - 1 ;d = sqrt ( d);for (b = 1 ; b = n + 1 ; b + + )head (n + 1) 3 ( k - 1) + b - 1 = head ( n + 1) 3 (k - 1) + b - 1 / d ;int didai () int i ,k ;double 3 p1 ,s ;p1 = ( double 3 ) calloc

9、(n 丄 EN) for (k = 0 ; k t) / 3 迭代求解 3 /for (i = 1 ;i = m ;i + +)t? 194-2013 hina Academic Jtxjtnal Llectronic:PublishiiigHouse, All 上ighls tenarved. httptAwww,cnkLnelfor (k = 0 ;k = n - 1 ; k + + )p k = pl k ;s = 0. 0 ;for (k = 0 ; k = n -1;k+ +)s = s + head (i- 1)3( n+ 1)+ k3 p k ;for (k = 0 ; k =

10、n -1;k+ +)pl k = p k +(headi 3 ( n + 1) - 1 - s ) 3 head (i - 1) 3 (n + 1) + k ;s = 0. 0 ;for (k = 0 ; k = n - 1 ;k + + )3 (p1k- pk )s = s + (p1 k- p ks = sqrt ( s);)/3判断该解是否为方程的根3/1 ; k + + )for (i = 1 ;i = m ;i + +for (k = 0 ; k = n -p k = p1 k;s = 0. 0 ;趣* 电龟 hifor (k = 0 ; k = n -s = s + head (i - 1) 3 ( n + 1) + k 3 p k ;for (k = 0 ; k = n - 1 ; k + + )p1 k= p k +(headi 3 ( n + 1) - 1 - s ) 3 head (i - 1) 3 ( n + 1) + k ;s = 0. 0 ;for ( k = 0 ;k t) break ;if (i m) return (1);else return (0);main ()int x ,y ;input ();y = didai ();if (y 0) printf (“方程组的根

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论