//求解存在唯一解的方程组#include <stdio.h>
#include <stdlib.h>
double count(double D[][100],int n);//计算行列式
int toDj(double D[][100],double Dj[][100],double *b,int n,int j);//转换成Djint main(void)
{double D[100][100]={},Dj[100][100],b[100],x[100],d;int n,i,j;//n为未知数个数//    输入未知数数量printf("Input the number of unknown digits.\n");scanf("%d",&n);//    输入方程printf("Enter the equation.\n");for (i=0; i<n; i++){printf("? x%d",i+1);if (i!=n-1){printf(" + ");}}printf("=?\n");for (i=0; i<n; i++){for (j=0; j<n; j++){scanf("%lf",&D[i][j]);}scanf("%lf",&b[i]);}d = count(D, n);//计算D//    D=0时不可以Cramer法则,解不唯一if (d == 0){printf("More than one solution.\n");}else{
//        D不等于0时,解唯一,利用Cramer计算for (j=0; j<n; j++){toDj(D, Dj, b, n, j);x[j] = count(Dj, n) / d;printf("x%d = %.2lf  ",j+1,x[j]);if (j%5==0 && j!=0 && j!=n-1){printf("\n");}}printf("\n");}return 0;
}//利用第一列展开求行列式
double count(double D[][100],int n)
{int i,p,q,s;//i为原行列式行数,p、q为余子式的行列号,s为符号表示double M[100][100] = {}, result = 0.0;//M[][]为余子式,result为结果//    令拆到行列数为0时,余子式为1if (n==0){return 1;}//    第一列展开for (i=0,s=1; i<n; i++,s*=(-1)){//        求a[i][0]的余子式M[i][0],即删去第i+1行第1列for (p=0; p<n-1; p++){if (p<i){for (q=0; q<n-1; q++){M[p][q] = D[p][q+1];}}else if (p>=i){for (q=0; q<n-1; q++){M[p][q] = D[p+1][q+1];}}}//        利用递归求解result += s*D[i][0]*count(M, n-1);}return result;
}//将第j+1列与b列交换
int toDj(double D[][100],double Dj[][100],double *b,int n,int j)
{int p,q;//p为行,q为列for (p=0; p<n; p++){for (q=0; q<n; q++){if (q == j){Dj[p][q] = b[p];}else{Dj[p][q] = D[p][q];}}}return 0;
}

利用Cramer法则求具有唯一解的方程组的解相关推荐

  1. python 空间法向量可视化_利用空间法向量求二面角具体方法

    如果已经求得各点坐标,或者说我们说的,能够建系, 就用"法向量法",所谓法向量,是指垂直于一个平面的直线, 根据向量可在平面内任意平移,我们可以知道,一个平面的法向量有无数多条. ...

  2. js求两圆交点_利用二项式通项公式求系数及综合运用(2)

    更多资料获取,添加qq群:639636957 更多精彩,请点击上方蓝字关注我们! 二项式通项公式的基本应用 1 题目 2 视频讲解 3 答案 4 知识点 往期视频汇总 每日一题第1题之数列对数型不等式 ...

  3. C语言:选列主元约当消元法求线性方程组唯一解

    采用选列主元约当消元法求线性方程组唯一解:输入4*5的线性方程组的满秩增广矩阵,输出方程组的解(使用双精度double类型精确到小数点后9位有效数). 输入格式 m(整数,实验数据总数) a11 a1 ...

  4. 利用MATLAB进行求导

    导数是微积分中的一个重要的概念,又称为导函数值.在数学中,我们经常会利用导数来求切线.极值.拐点.渐近线等.在解决数学问题中,经常需要用到导数.MATLAB中提供了diff函数进行求导.本文对于MAT ...

  5. 离散数学范式c语言实验报告,离散数学实验报告-利用真值表法求主析取范式及主合取范式的实现...

    1.实 验 报 告( / 学年 第 一 学期)课程名称离散数学实验名称利用真值表法求主析取范式及主合取范式的实现实验时间年月日指导单位指导教师学生姓名班级学号学院(系)专 业 实 验 报 告实验名称利 ...

  6. 高斯--塞德尔迭代法求方程组的解(Python实现)

    数值分析题目 求方程组 {5x1+2x2+x3=−12−x1+4x2+2x3=202x1+−3x2+10x3=2\left\{ \begin{array}{c} 5x_1+2x_2 + x_3 = - ...

  7. python编写函数、计算三个数的最大公约数_Python实现利用最大公约数求三个正整数的最小公倍数示例...

    本文实例讲述了Python实现利用最大公约数求三个正整数的最小公倍数.分享给大家供大家参考,具体如下: 在求解两个数的小公倍数的方法时,假设两个正整数分别为a.b的最小公倍数为d,最大公约数为c.存在 ...

  8. Java黑皮书课后题第3章:*3.25(几何:交点)第一条直线上面的两个点是(x1,y1)(x2,y2),第二条(x3,y3)(x4,y4),通过Cramer规则求出线性方程组

    *3.25(几何:交点)第一条直线上面的两个点是(x1,y1)(x2,y2),第二条(x3,y3)(x4,y4),通过Cramer规则求出线性方程组 题目 题目概述 题目给出的线性方程组 Cramer ...

  9. 有n 个长为m+1 的字符串,求前后m个字符匹配所能形成的最长字符串链:利用弗洛伊德算法求最长路径...

    有n 个长为m+1 的字符串,如果某个字符串的最后m 个字符与某个字符串的前m 个字符匹配,则两个字符串可以联接,问这n 个字符串最多可以连成一个多长的字符串,如果出现循环,则返回错误. 把字符串看成 ...

  10. python辗转相除法求最小公倍数_Python实现利用最大公约数求三个正整数的最小公倍数示例...

    Python实现利用最大公约数求三个正整数的最小公倍数示例 本文实例讲述了Python实现利用最大公约数求三个正整数的最小公倍数.分享给大家供大家参考,具体如下: 在求解两个数的小公倍数的方法时,假设 ...

最新文章

  1. MYSQL为用户指定权限有哪些
  2. SPRING IN ACTION 第4版笔记-第三章ADVANCING WIRING-003-@Conditional根据条件生成bean及处理profile...
  3. php如何进行错误处理,php如何自定义错误处理
  4. java类可选,java – 是否有类可选,但非可选的类?
  5. 设置笔记笔触摸区(Vista)
  6. Mac下安装Flink的local模式(flink-1.0.2)
  7. python 哈希表_数据结构-7 哈希表
  8. Spring Cloud 和 Dubbo,到底用哪个好?
  9. C语言练习题——if语句
  10. opencv学习——翻转摄像头
  11. Keil代码折来叠功能显示与隐藏!!!
  12. c语言中fabs是什么意思,c语言fabs是什么意思_后端开发
  13. #217-[哈希]好人卡
  14. 城市空中交通和无人系统的空中交通管制评估
  15. Unity Failed to resolve project template:Failed to decompress
  16. python自动打卡
  17. 关于计算机的知识作文,计算机想象作文
  18. 尚学堂 实战java程序设计 第1,2章课后题答案
  19. 计算机网络谢希仁第七版知识点总结
  20. 创建文件 c语言,汇编语言CreateFile函数:创建新文件或者打开已有文件

热门文章

  1. 学生选课管理信息系统
  2. java xssf 字体样式_Apache POI字体/Fonts
  3. 计算机三级数据库考试题型,计算机三级数据库技术考试习题及答案
  4. Unity3D 脚本模板插件
  5. js获取本地时间与网络时间
  6. 清华大学李涓子教授:AI系统如何实现认知推理?
  7. 阿里面试官最新分享的Java面试宝典,含8大核心内容讲解
  8. Vb.net 获取IP地址
  9. SQL_SERVER_2008升级SQL_SERVER_2008_R2的方法
  10. 房屋租赁管理系统(Java毕业设计-Springboot)