资源简介
SIRT,LSQR,SVD算法程序中,M,N分别系数矩阵A的行数和列数(对于不同的方程,需自己改动此参数),反演得X分别放在文件SIRT_X.TXT,LSQR_X.TXT,SVD_X.TXT中(由程序自动生成)。
另:运行svd程序时,找到svd.c,打开编译运行即可。
附带一个A*X=B的测试文件,其中a.txt是测试方程矩阵的系数矩阵,x.txt为已知解,b.txt为测试方程右边的常数项。分别用上面提供的三个反演算法程序,计算一下,将a.txt ,b.txt作为已知输入程序,算出解X,再与x.txt 中的已知真实解比较,即可看出哪种算法的精度高。
代码片段和文件信息
#include
void main()
{
FILE *fp1;FILE *fp2;FILE *fp3;
float A[5][5]B[5]aaa;
char ch1[10]ch2[10];
int ij;
printf(“请输入系数矩阵文件名:“);
scanf(“%s“ch1);
printf(“请输入方程X矩阵文件名:“);
scanf(“%s“ch2);
if((fp1=fopen(ch1“r“))==NULL)
{
printf(“can not open file!\n“);
return;
}
/*打开增广矩阵数据文件*/
if((fp2=fopen(ch2“r“))==NULL)
{
printf(“can not open file!\n“);
return ;
}
fp3=fopen(“b.txt““w“);
for(i=0;i<5;i++)
{
aaa=0;
for(j=0;j<5;j++)
{
fscanf(fp1“%f“&A[i][j]);fscanf(fp2“%f“&B[j]);//printf(“%8.4f%8.4f“A[i][j]);
aaa=aaa+A[i][j]*B[j];
}
printf(“%8.4f“aaa);
fprintf(fp3“%10.4f“aaa);
}
fclose(fp1);fclose(fp2);fclose(fp3);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 123 2006-03-24 10:09 解线性方程组\a.txt
文件 50 2006-11-17 21:03 解线性方程组\b.txt
文件 786 2006-11-17 21:03 解线性方程组\Cpp1.cpp
文件 2360 2006-11-17 20:31 解线性方程组\LSQR.c
文件 637 2005-04-28 09:18 解线性方程组\root.c
文件 2167 2006-11-17 21:06 解线性方程组\SIRT.C
文件 23 2006-03-24 10:09 解线性方程组\x.txt
..A.SH. 9 2006-09-27 00:48 解线性方程组\_desktop.ini
文件 489 2006-11-17 21:37 解线性方程组\程序说明.txt
文件 123 2006-03-24 10:09 解线性方程组\svd\a.txt
文件 50 2006-11-17 21:03 解线性方程组\svd\b.txt
文件 2919 2006-11-17 21:16 解线性方程组\svd\svd.c
文件 8693 2006-03-29 22:14 解线性方程组\svd\svdcmp.c
文件 3250 2006-07-20 10:06 解线性方程组\svd\svdenglish.c
文件 465 2006-03-29 17:13 解线性方程组\svd\svdqj.c
..A.SH. 9 2006-09-27 00:48 解线性方程组\svd\_desktop.ini
目录 0 2007-05-16 23:36 解线性方程组\svd
目录 0 2007-05-16 23:36 解线性方程组
----------- --------- ---------- ----- ----
22153 18
- 上一篇:最简单的PHP MVC留言本
- 下一篇:C++实现科学计算器的代码
评论
共有 条评论