楼上的是矩阵的转置,不是求逆矩阵!
c语言的方阵求逆的一个完整的程序如下,在tc20下运行良好:
#include <stdioh>
#include <stdlibh>
#include <conioh>
#include <mathh>
#define MAX 255
void MatrixMul(a,b,m,n,k,c) /实矩阵相乘/
int m,n,k; /m:矩阵A的行数, n:矩阵B的行数, k:矩阵B的列数/
double a[],b[],c[]; /a为A矩阵, b为B矩阵, c为结果,即c = AB /
{
int i,j,l,u;
/逐行逐列计算乘积/
for (i=0; i<=m-1; i++)
for (j=0; j<=k-1; j++)
{
u=ik+j; c[u]=00;
for (l=0; l<=n-1; l++)
c[u]=c[u]+a[in+l]b[lk+j];
}
return;
}
int brinv(a,n) /求矩阵的逆矩阵/
int n; /矩阵的阶数/
double a[]; /矩阵A/
{
int is,js,i,j,k,l,u,v;
double d,p;
is=malloc(nsizeof(int));
js=malloc(nsizeof(int));
for (k=0; k<=n-1; k++)
{
d=00;
for (i=k; i<=n-1; i++)
/全选主元,即选取绝对值最大的元素/
for (j=k; j<=n-1; j++)
{
l=in+j; p=fabs(a[l]);
if (p>d) { d=p; is[k]=i; js[k]=j;}
}
/全部为0,此时为奇异矩阵/
if (d+10==10)
{
free(is); free(js); printf(" >> This is a singular matrix, can't be inversed!\n");
return(0);
}
/行交换/
if (is[k]!=k)
for (j=0; j<=n-1; j++)
{
u=kn+j; v=is[k]n+j;
p=a[u]; a[u]=a[v]; a[v]=p;
}
/列交换/
if (js[k]!=k)
for (i=0; i<=n-1; i++)
{
u=in+k; v=in+js[k];
p=a[u]; a[u]=a[v]; a[v]=p;
}
l=kn+k;
a[l]=10/a[l]; /求主元的倒数/
/ a[kj]a[kk] -> a[kj] /
for (j=0; j<=n-1; j++)
if (j!=k)
{
u=kn+j; a[u]=a[u]a[l];
}
/ a[ij] - a[ik]a[kj] -> a[ij] /
for (i=0; i<=n-1; i++)
if (i!=k)
for (j=0; j<=n-1; j++)
if (j!=k)
{
u=in+j;
a[u]=a[u]-a[in+k]a[kn+j];
}
/ -a[ik]a[kk] -> a[ik] /
for (i=0; i<=n-1; i++)
if (i!=k)
{
u=in+k; a[u]=-a[u]a[l];
}
}
for (k=n-1; k>=0; k--)
{
/恢复列/
if (js[k]!=k)
for (j=0; j<=n-1; j++)
{
u=kn+j; v=js[k]n+j;
p=a[u]; a[u]=a[v]; a[v]=p;
}
/恢复行/
if (is[k]!=k)
for (i=0; i<=n-1; i++)
{
u=in+k; v=in+is[k];
p=a[u]; a[u]=a[v]; a[v]=p;
}
}
free(is); free(js);
return(1);
}
print_matrix(a,n)/打印的方阵a的元素/
int n; /矩阵的阶数/
double a[]; /矩阵a/
{
int i,j;
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
printf("%137f\t",a[in+j]);
printf("\n");
}
}
main()
{
int i,j,n=0;
double A[MAX],B[MAX],C[MAX];
static double a[4][4]={ {02368,02471,02568,12671},
{11161,01254,01397,01490},
{01582,11675,01768,01871},
{01968,02071,12168,02271}};
static double b[4][4],c[4][4];
clrscr();
puts("");
puts(" This program is to inverse a square matrix A(nxn) ");
puts("");
while(n<=0)
{
printf(" >> Please input the order n of the matrix (n>0): ");
scanf("%d",&n);
}
printf(" >> Please input the elements of the matrix one by one:\n >> ");
for(i=0;i<nn;i++)
{
scanf("%lf",&A[i]);
B[i]=A[i];
}
for(i=0;i<4;i++)
for(j=0;j<4;j++)
b[i][j]=a[i][j];
i=brinv(A,n);
if (i!=0)
{
printf(" Matrix A:\n");
print_matrix(B,n);
printf("\n");
printf(" A's Inverse Matrix A-:\n");
print_matrix(A,n);
printf("\n");
printf(" Product of A and A- :\n");
MatrixMul(B,A,n,n,n,C);
print_matrix(C,n);
}
printf("\n Press any key to quit");
getch();
}
首先概念要搞清楚,VB本身是一种程序设计语言,它并不是“用什么编写出来”的,而是通过人为制定的一些规则、语法等创建的一种语言,就好比现实中的语言,I am a student的意思是“我是个学生”,但如果你规定,xye是“我”,kj是“是”,ds是“一个”,sgtfk是“学生”,那么xye kj ds sgtfk的意思也是“我是个学生”,这样你也就创建了一种语言(当然实际上肯定复杂得多,这里是举个例子)。
而你所说的“可以编写软件”的VB,实际上是指VB的IDE(即集成开发环境),是用于提供VB程序开发环境的应用软件,里面包括了VB代码编辑器、编译器、调试器和图形用户界面等工具及功能。这个IDE应该是用C语言结合汇编语言做出来的,但这其实不重要,因为即使就用VB本身也能做出另一个全新的VB的IDE(不含编译器)来你信不?
IDE并不是VB不可缺少的组成部分,不用IDE,直接用其他文本编辑器(比如记事本)也能编写VB程序代码(包括图形界面)!当然只有真正的高手才会这么做。
编译器才是VB最核心的部分,它可以把VB的源代码编译为exe可执行程序。编译器毫无疑问肯定是用汇编语言做出来的,其他高级语言不可能设计出编译器来,就像人不可能自己生出自己来一样。编译器是独立于IDE的,你可以不用IDE,直接用命令行的方式来编译VB程序。
也就是说,如果你是高高高高手,只需要记事本加上编译器就可以开发VB软件了。所以“VB是用什么编写出来的”这个问题真的不重要(我知道即使回答了你,你接下来会继续问“编写出VB的软件又是用什么编写出来的?”)!
你的计算机可能中了: (1)win32hackagobot(黑客病毒)(特点:浪费系统资源,速度狂减,甚至死机),处理方法:安哥病毒专杀工具。 (2)win32hacksbbot(黑客病毒)(特点:后门程序,经常伪装成正常的系统进程,如iexplorerexe),处理方法:“sdbot" 病毒专杀工具。 (3)win32trojbeagley(恶鹰)(特点:开机自启动,并试图下载其他程序,故可能出现iexplorerexe进程),处理方法:“恶鹰专杀工具”。 (4)win32trojpswgameqqns(特点:**QQ帐号和密码,会注入IExplorerexe进程,如果用户看到IExplorer进程但并没有IE窗口),处理方法:“QQ尾巴专杀工具。 (5)win32trojqqcjbad(冲击波)(特点:第一次染上大占资源,重启后出现关机倒计时1分钟),处理方法:“QQ尾巴专杀工具”。 Win32trojqqpasskw(特点:可插入Explorerexe与ctmonexe进程中进行。)处理方法:同上。 (6)WormCodeblue(特点:攻击微软inetinfoexeIIS服务程序漏洞,并植入名为SvcHostexe的黑客程序运行,该蠕虫病毒将在服务器内存中不断生成新的线程,最终导致系统运行缓慢,甚至瘫痪)处理方法:蓝色代码专杀工具。 (7)Wormsasser(特点:利用Xp的Lasass漏洞进行广泛传播,开启上百个线程不停攻击其他网上其他系统,堵塞网络。 可让系统不断重启),处理方法:“震荡波专杀工具”。 (8)WormSircama(特点:通过电子邮件传播,它利用了Microsoft的Iframe漏洞,一旦预览或打开电子邮件,其附件病毒程序READMETXT<随即数量的空格〉pif就会自动运行。附件程序看来好似READMETXT文件,其实他的真实扩展名是pif(一种32位的PE文件格式)。该蠕虫病毒是用VB 6编写的),处理方法:毒霸笑哈哈专杀工具。 (9)WormSircamea(特点:运行时一般会大量繁殖自己,可能造成系统资源耗尽或网络严重堵塞)处理方法:Sircam病毒专杀工具。 (10)WormSupnotae(特点:该病毒综合了“冲击波”,“QQ小尾巴”,“MYBOOM”,“恶鹰”,“木马”等众多病毒于一身, 将对电脑用户造成严重危害。中毒后计算机可能出现下列现象:向外疯狂发送垃圾邮件,60秒倒计时重启,向QQ好友发送垃圾信息,打不开杀毒软件,向网络内其他机器发起攻击,上网速度缓慢等。)处理方法:“五毒虫”专杀工具。 (11)WormVilkingm(特点:为Windows平台下集成可执行文件感染,网络感染,下载网络木马或其他病毒的复合病毒,病毒运行后伪装成系统正常文件,以迷惑用户,感染计算机上的可执行文件,造成用户机器运行速度变慢,破坏用户机器的可执行文件。),处理方法:“维金病毒专杀工具。 (12)VBSKJ(特点:是一个感染html,jsp,vbs,php,asp的脚本类病毒。和欢乐时光“VBSHapplyTime”一样,该病毒采用VBScript语言编写,在互联网上通过电子邮件进行传播,也可通过邮件感染,使系统资源大量消耗,速度变慢;利用Windows系统的“资源管理器”进行寄生于传染。)处理方法:新欢乐时光专杀工具。 大概就这些了,你可以通过搜索得到这些专杀工具。 几句话提醒:下载软件要到官方下载,下载之后的文件要杀毒后再打开,及时更新病毒库,不浏览不明网站,不要随意点击广告等。 详明:不要在已染毒的系统里安装任何软件、重装系统等,病毒可能通过复制这一指令注入安装程序,格式化没有用,最好先备份文件再用分区工具重写硬盘。推荐:Windows Vista的安全性能很不错,不妨升级看看。 注:一楼的说得太轻松了,上网安全的问题远不止如此简单,希多增强安全意识。 附:Windows 正常进程 1actmovieexe =Microsoft Active Movie 2algexe =Application Layer Gateway Sevice 3btwdinsexe =Microsoft Bluetooth Service 4cmdexe =Windows Command Prompt 5Controlexe =Microsoft Control Panel 6explorerexe =Microsoft Windows Explorer 7fastexe =FastUsr 8grpconvexe =Windows Programme Group Converter 9hidservexe =Microsoft Human Interface Device Audio Server 10iexplorerexe =Microsoft Internet Explorer 11internatexe =Microsoft Input Locales 12Isassexe =Local Security Authority Service 13mmcexe =Microsoft Management Console 14msconfigexe =Windows System Configuration Utility 15pstoresexe(or)pstores =Protected Storage Service 16resautouexe =Microsoft Remote Access Dialler 17rpcssexe =Remote Proceedure Call Service 18smssexe =Session Manager Subsystem 19tapisrvexe =Microsoft TAPl Service 20wowexecexe =Microsoft Windows On Windows Exexcution Process 21wscntfyexe =Microsoft Windows Security Center
public class Arr{
//数组
int[] arr = {3,1,6,4,5,10,2};
//对数组进行简单的排序
javautilArrayssort(arr);
//输出最大值、最小值
Systemoutprintln("最大值:" + arr[arrlength-1] +"\n最小值:" + arr[0]);
//从小到大输出
Systemoutprintln(javautilArraystoString(arr));
}
以上就是关于编一程序,计算3*3阶矩阵的逆矩阵。哪位高手给解答下全部的内容,包括:编一程序,计算3*3阶矩阵的逆矩阵。哪位高手给解答下、VB可以编写软件,那VB又是用什么编写出来的呢、schost是什么程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)