详细的求逆矩阵的算法,可以直接使用

/*文件名 CINV.C,徐士良编写

复矩阵求逆,其中ar为复矩阵实部对应的二维数组首地址,ai为虚部数组的首地址, 求逆矩阵后的结果覆盖原数组*/

#include

#include

int cinv(n,ar,ai)

int n;

double ar[],ai[];

{ int *is,*js,i,j,k,l,u,v,w;

double p,q,s,t,d,b;

is=malloc(n*sizeof(int));

js=malloc(n*sizeof(int));

for (k=0; k<=n-1; k++)

{ d=0.0;

for (i=k; i<=n-1; i++)

for (j=k; j<=n-1; j++)

{ u=i*n+j;

p=ar[u]*ar[u]+ai[u]*ai[u];

if (p>d) { d=p; is[k]=i; js[k]=j;}

}

if (d+1.0==1.0)

{ free(is); free(js); printf("err**not inv\n");

return(0);

}

if (is[k]!=k)

for (j=0; j<=n-1; j++)

{ u=k*n+j; v=is[k]*n+j;

t=ar[u]; ar[u]=ar[v]; ar[v]=t;

t=ai[u]; ai[u]=ai[v]; ai[v]=t;

}

if (js[k]!=k)

for (i=0; i<=n-1; i++)

{ u=i*n+k; v=i*n+js[k];

t=ar[u]; ar[u]=ar[v]; ar[v]=t;

t=ai[u]; ai[u]=ai[v]; ai[v]=t;

}

l=k*n+k;

ar[l]=ar[l]/d; ai[l]=-ai[l]/d;

for (j=0; j<=n-1; j++)

if (j!=k)

{ u=k*n+j;

p=ar[u]*ar[l]; q=ai[u]*ai[l];

s=(ar[u]+ai[u])*(ar[l]+ai[l]);

c语言求逆程序,求逆矩阵的C语言源程序CINV相关推荐

  1. luogu P4725 多项式对数函数 (模板题、FFT、多项式求逆、求导和积分)

    luogu P4725 多项式对数函数 (模板题.FFT.多项式求逆.求导和积分) 手动博客搬家: 本文发表于20181125 13:25:03, 原地址https://blog.csdn.net/s ...

  2. matlab求根的原程序,MATLAB求根程序求帮助

    我有一个函数g=m*(m1/m)*(m2/m)*(r^2)*rm*Wc1*cos(2*u),我需要一个程序求这个函数在在(-2*pi,2*pi)上所有的根. 其中u是自变量,其他所有参数都是已知.已知 ...

  3. 用 C 语言编写的程序被称为,用c语言编写的程序被称为

    快速导读: Q1:用C语言编写以下程序 #includeintmain(void){ intm,n,i,t; printf("InputM,N(int0if(scanf("%d%d ...

  4. 程序员学c语言吗,为什么程序员要学C语言

    请点击此处输入图片描述 C语言不是面向对象语言.因为这一点,任何程序员学习C语言必须学会用函数思考问题.当程序员真正的去学习一门面向对象语言时,就会有C语言的函数学习基础去对比.这会使学习面向对象编程 ...

  5. c语言转换为stc程序,STC51单片机入门(C语言)

    以前老资料,可继续下载参考. 目   录 第1篇 单片机KEIL开发环境 第1章  点亮LED实例与经典延时程序介绍(看不懂就从第2章动手) 1.1 51单片机最小系统与芯片引脚图 1.2 点亮LED ...

  6. c语言多文件程序编译和链接,C语言知识汇总 | 04-源文件、可执行程序、编译与链接...

    一.源文件(Source File) 在开发软件的过程中,需要将编写好的代码(Code)保存到一个文件中,这样代码才不会丢失,才能够被编译器找到,才能最终变成可执行文件.这种用来保存代码的文件就叫做源 ...

  7. 如何用c 语言编写阶乘程序,求10000的阶乘(c语言代码实现)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /* 程序功能:计算一个正整数n的阶乘,目前最大能运算10000的阶乘,可秒杀. 程序意义:加强自己对于大数的处理. 说明:此程序对乘法和除法还未做任何优 ...

  8. c语言加减乘除算术程序,求一个计算加减乘除的C语言程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include int getOption (void); void getData (int* num1, int* num2); ...

  9. c语言发牌思路,C语言发牌机程序求详细解析

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include //运用结构体存储扑克牌的序号和花色 typedef struct card { char *col ...

最新文章

  1. java轻量级IOC框架Guice
  2. 在Windows里备份Linux分区,在Windows里分出Linux分区(Linux分区).pdf
  3. git查看每个版本间的差异
  4. WIN10+VS2015环境下安装PCL1.8.1
  5. 分享几个比较提高工作效率的软件
  6. .NET Framework 中的并行编程
  7. P2141_珠心算测验
  8. 软件设计 基础篇(二) 交互设计
  9. 我的python学习(五)文件操作、异常捕获
  10. [苹果解密]创新是伟大公司诞生的源泉--Apple再度成为美国最大上市公司
  11. oracle数据库中的update语句的用法
  12. Pikachu-XXE
  13. 法拉帝港股上市:市值76亿港元 9个月交付179艘游艇
  14. 修复This is probably not a problem with npm. There is likely additional logging output above.依赖问题
  15. 英雄萨姆二次出击全攻略
  16. Matlab 中@ 的用法
  17. 安防 为农村公路系上“安全带”
  18. 实现局部放大图片功能
  19. 介词php,介词短语作状语
  20. 魔百盒M301H(ZN、JL、CW、SM代工)_海思3798mv300_全套刷机固件

热门文章

  1. 青山不语,碧海无痕,数字山河间的中国脊梁
  2. GetLasError参数详解
  3. CH573 Peripheral 修改MTU
  4. ERP系统-销售子系统-销售订单
  5. 【web项目】前端生日礼物--主页面篇
  6. 2020笔记本性价比之王_【笔记本电脑选购】2020年有哪些款高性价比笔记本电脑值得推荐?(十一月更新)...
  7. 《笨方法学 Python 3》35.分支和函数
  8. 以太网通信时4芯网线和8芯网线的区别(百兆网络 OR 千兆网络)
  9. 函数声明与函数表达式的提升问题
  10. iost主网同步手记