已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(原创)利用克拉默法则求解多元一次方程组packagezouyf.matrix;/*/*authorzouyf2008-4-7本程序利用克拉默法则求解多元一次方程组*/publicclassGetMatrix.privatedoublesavequot;/保存变量系数privatedoubleconstquot;/保存常量系数privatedoublesaveResult;/保存解的集合publicGetMatrix(doublequot).intcount=quot.length;savequot=newdoublecountcount;constquot=newdoublecount;saveResult=newdoublecount;inti=0,j=0;for(i=0;icount;i+).for(j=0;jcount;j+).savequotij=quotij;constquoti=quoticount;saveResulti=0;privatedoublegetMatrixResult(doubleinput)/递归的方法求得某个行列式的值.if(input.length=2)/递归出口,为二阶行列式时,直接返回.returninput00*input11-input01*input10;else.doubletemp=newdoubleinput.length;/存放第一列的系数值doubletempinput=newdoubleinput.length-1input.length-1;doubleresult=0;for(inti=0;iinput.length;i+).tempi=inputi0;intm=0,n=0;for(intk=0;kinput.length;k+).if(k!=i).for(m=0;minput.length-1;m+).tempinputnm=inputkm+1;/删除当前变量系数所在的行和列,得到减少一阶的新的行列式n+;if(i%2=0)/递归调用,利用代数余子式与相应系数变量的乘积之和得到多阶行列式的值.result=result+tempi*getMatrixResult(tempinput);else.result=result-tempi*getMatrixResult(tempinput);returnresult;privatedoublegetReplaceMatrix(inti)/用常数系数替换相应的变量系数,得到新的行列式.doubletempresult=newdoublesavequot.lengthsavequot.length;for(intm=0;msavequot.length;m+).for(intn=0;nsavequot.length;n+).if(i!=m).tempresultnm=savequotnm;else.tempresultni=constquotn;/用常量系数替换当前变量系数returntempresult;publicdoublegetResult().doublebasic=0;basic=getMatrixResult(savequot);/得到变量系数行列式的值if(Math.abs(basic)0.00001)/得到行列式的值为零时,表示此方程组没有唯一解.System.out.println(itdosenothavethequeueresult!);returnsaveResult;doubletemp=newdoublesaveResult.lengthsaveResult.length;for(inti=0;isaveResult.length;i+).temp=getReplaceMatrix(i);saveResulti=getMatrixResult(temp)/basic;/依次计算得到每一个变量的解returnsaveResult;publicstaticvoidmain(Stringargs)./*/*测试方程组*2a+b-5c+d=8*a-3b-6d=9*2b-c+2d=-5*a+4b-7c+6d=0*/doubletest=.2,1,-5,1,8,.1,-3,0,-6,9,.0,2,-1,2,-5,.1,4,-7,6,0;GetMatrixgm=newGetMatrix(test);doubleuu=newdoubletest.length;/返回结果集uu=gm.getResult();for(inti=0;iuu.length;i+).System.out.println(uui+,);C+版#include stdafx.h#include #include #include /本程序利用克拉默法则求解多元一次方程组using namespace std;class GetMatrixpublic:GetMatrix(vector vector quot);double getMatrixResult(vector vector input);vector vector getReplaceMatrix(int i);vector getResult();private:vector vector savequot;vector constquot;vector saveResult;GetMatrix:GetMatrix(vector vector quot)int count = quot.size();savequot.resize(count);for (int i=0;icount;i+)savequoti.resize(count);constquot.resize(count);saveResult.resize(count);int i = 0, j = 0;for (i = 0; i count; i+)for (j = 0; j count; j+)savequotij = quotij;constquoti = quoticount;saveResulti = 0;double GetMatrix:getMatrixResult(vector vector input)/ 递归的方法求得某个行列式的值if (input.size() = 2)/递归出口,为二阶行列式时,直接返回return input00 * input11 - input01 * input10; elseint iLength=input.size();vector temp(iLength);vector vector tempinput(iLength-1,vector(iLength-1);double result = 0;for (int i = 0; i iLength; i+)tempi = inputi0;int m = 0, n = 0;for (int k = 0; k iLength; k+)if (k != i)for (m = 0; m iLength - 1; m+)tempinputnm = inputkm + 1;/删除当前变量系数所在的行和列,得到减少一阶的新的行列式n+;if (i % 2 = 0)/ 递归调用,利用代数余子式与相应系数变量的乘积之和得到多阶行列式的值result = result + tempi * getMatrixResult(tempinput);elseresult = result - tempi * getMatrixResult(tempinput);return result;vector vector GetMatrix:getReplaceMatrix(int i)/ 用常数系数替换相应的变量系数,得到新的行列式vector vector tempresult(savequot);for (int m = 0; m savequot.size(); m+)for (int n = 0; n savequot.size(); n+)if (i != m)tempresultnm = savequotnm; elsetempresultni = constquotn;/ 用常量系数替换当前变量系数return tempresult;vector GetMatrix:getResult()double basic = 0;basic = getMatrixResult(savequot);/得到变量系数行列式的值if (abs(basic) 0.00001)/得到行列式的值为零时,表示此方程组没有唯一解coutit dose not have the queue result!endl;return saveResult;int iLength=saveResult.size();vector vector temp(iLength,vector(iLength);for (int i = 0; i iLength; i+)temp = getReplaceMatrix(i);saveResulti = getMatrixResult(temp) / basic;/依次计算得到每一个变量的解return saveResult;int _tmain(int argc, _TCHAR* argv)/* 测试方程组* 2a+b-5c+d=8 * a-3b-6d=9 * 2b-c+2d=-5 * a+4b-7c+6d=0*/*double test145 = 2, 1, -5, 1, 8 , 1, -3, 0, -6, 9 , 0, 2, -1, 2, -5 , 1, 4, -7, 6, 0 ;*/* 测试方程组* 4a+b=3 * 8a+b=6*/double test123 = 4, 1 ,3, 8, 1,6 ;vector vector t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026 甘肃省华亭市装载机操作证理论考试参考题库-含答案
- 法学在线专项试题及答案
- 2026天津佳和康复医院有限公司招聘7人考试参考题库及答案详解
- 2026年哈尔滨市风华诺丁山学校公开招聘临时教师笔试参考题库及答案详解
- 2026年五寨县中小学幼儿园教师招聘笔试模拟试题及答案解析
- 2026中国农业科学院哈尔滨兽医研究所禽免疫抑制病团队编外派遣人员招聘1人笔试模拟试题及答案详解
- 2026年长宁县网格员招聘考试备考题库及答案解析
- 2026新疆水利水电勘测设计研究院及所属分公司招聘(9人)笔试备考题库及答案详解
- 2026年杞县中小学幼儿园教师招聘考试备考试题及答案解析
- 2026贵州黔东南州黄平县人民医院招聘28名编制外工作人员考试备考题库及答案详解
- 口腔诊所合理使用抗菌药物的整改措施
- 2026秋小学人美版美术六年级上册(新教材)教学计划附教学进度表
- 2026年河南省重点学校高一入学语文分班考试试题及答案
- 辽宁省沈阳市五校2025-2026学年高二下学期7月期末考试物理试卷(含答案)
- 2026版前列腺癌诊疗指南
- 中国公证协会招聘考试真题2025
- 2026年秋季学期统编版小学五年级上册语文教学计划含教学进度表
- 乘客电梯调试作业指导书
- 2026年全国数据技术与应用职业技能竞赛(商务数据分析与应用)必练题(共350题)
- 2026年秋教科版六年级上册科学每课教学反思
- GB/T 5621-2008凿岩机械与气动工具性能试验方法
评论
0/150
提交评论