Doolitle解方程的c++实现
班级:09医软一班
制作人:方远(主菜单及打印及调试)
方艳艳(矩阵U的计算及输出)
方天白(算法的编写)
胡婷娟(矩阵L的计算及输出)
韩建(x、y值的计算及输出、整体函数的构造、说明
书
关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf
的编写)
一 实验名称
Doolitle解方程的c++实现
二 实验目的
理解各种方法的基本思想及公式的推导过程
用c语言实现方程组地求解。
三 实验原理
若矩阵A为N阶方阵,则可将矩阵A分解为A=LU其中L是下三角矩阵,U是对角元素为1的上三角矩阵即单位上三角矩阵
源程序代码:
#include
#include
#include
#include
//----------------------------------------------全局变量定义区
const int Number = 20; //方程最大个数
float a[Number][Number], b[Number], copy_a[Number][Number], copy_b[Number]; //系数行列式
int A_y[Number]; //a[][]中随着横坐标增加列坐标的排列顺序,如a[0][0],a[1][2],a[2][1]...则A_y[]={0,2,1...};
int lenth, copy_lenth; //方程的个数
char *x; //未知量a,b,c的载体
//----------------------------------------------函数声明区
void input(); //输入方程组
void print_menu(); //打印主菜单
void Doolittle();
//主函数
void main()
{
input(); //输入方程
print_menu(); //打印主菜单
Doolittle();
}
//函数定义区
void print_menu()
{
system("cls");
cout << "------------方程系数和常数矩阵
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示如下:\n";
for(int j = 0; j < lenth; j++)
cout << "系数" << j + 1 << " ";
cout << "\t常数";
cout << endl;
for(int i = 0; i < lenth; i++)
{
for(j = 0; j < lenth; j++)
cout << setw(8) << setiosflags(ios::left) << a[i][j];
cout << "\t" << b[i] << endl;
}
cout << "\n---解线性方程组 09医药软件开发(1)班 学号:09713016 指导老师:金力老师--- ";
cout << "\n\n-----------Doolittle分解法方程解答的
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
----------\n";
}
void input()
{
int i, j;
cout << "方程的个数:";
cin >> lenth;
if(lenth > Number)
{
cout << "It is too big.\n";
return;
}
x = new char[lenth];
for(i = 0; i < lenth; i++)
x[i] = 'a' + i;
//输入方程矩阵
//提示如何输入
cout << "====================================================\n";
cout << "请在每个方程里输入" << lenth << "系数和一个常数:\n";
cout << "例:\n方程:a";
for(i = 1; i < lenth; i++)
{
cout << "+" << i + 1 << x[i];
}
cout << "=10\n";
cout << "应输入:";
for(i = 0; i < lenth; i++)
cout << i + 1 << " ";
cout << "10\n";
cout << "==============================\n";
//输入每个方程
for(i = 0; i < lenth; i++)
{
cout << "输入方程" << i + 1 << ":";
for(j = 0; j < lenth; j++)
cin >> a[i][j];
cin >> b[i];
}
//备份数据
for(i = 0; i < lenth; i++)
for(j = 0; j < lenth; j++)
copy_a[i][j] = a[i][j];
for(i = 0; i < lenth; i++)
copy_b[i] = b[i];
copy_lenth = lenth;
}
void Doolittle() //Doolittle消去法计算方程组
{
float temp_a[Number][Number], temp_b[Number],u[Number][Number],l[Number][Number],y[Number],x[Number];
int i, j,k;
for(i = 0; i < lenth; i++)
for(j = 0; j < lenth; j++)
temp_a[i][j] = a[i][j];
u[0][0]=temp_a[0][0];
for(i=0;i=0;i--)
{
x[i]=y[i];
for(k=i+1;k
本文档为【Doolittle法求解方程】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。