c语言编写一个函数的叉乘 c++叉乘

用C语言编写一个计算两个向量叉积的程序

//数值计算程序-特征值和特征向量

创新互联公司专注于毕节企业网站建设,响应式网站设计,成都做商城网站。毕节网站建设公司,为毕节等地区提供建站服务。全流程按需定制,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务

//////////////////////////////////////////////////////////////

//约化对称矩阵为三对角对称矩阵

//利用Householder变换将n阶实对称矩阵约化为对称三对角矩阵

//a-长度为n*n的数组,存放n阶实对称矩阵

//n-矩阵的阶数

//q-长度为n*n的数组,返回时存放Householder变换矩阵

//b-长度为n的数组,返回时存放三对角阵的主对角线元素

//c-长度为n的数组,返回时前n-1个元素存放次对角线元素

void eastrq(double a[],int n,double q[],double b[],double c[]);

//////////////////////////////////////////////////////////////

//求实对称三对角对称矩阵的全部特征值及特征向量

//利用变型QR方法计算实对称三对角矩阵全部特征值及特征向量

//n-矩阵的阶数

//b-长度为n的数组,返回时存放三对角阵的主对角线元素

//c-长度为n的数组,返回时前n-1个元素存放次对角线元素

//q-长度为n*n的数组,若存放单位矩阵,则返回实对称三对角矩阵的特征向量组

// 若存放Householder变换矩阵,则返回实对称矩阵A的特征向量组

//a-长度为n*n的数组,存放n阶实对称矩阵

int ebstq(int n,double b[],double c[],double q[],double eps,int l);

//////////////////////////////////////////////////////////////

//约化实矩阵为赫申伯格(Hessen berg)矩阵

//利用初等相似变换将n阶实矩阵约化为上H矩阵

//a-长度为n*n的数组,存放n阶实矩阵,返回时存放上H矩阵

//n-矩阵的阶数

void echbg(double a[],int n);

//////////////////////////////////////////////////////////////

//求赫申伯格(Hessen berg)矩阵的全部特征值

//返回值小于0表示超过迭代jt次仍未达到精度要求

//返回值大于0表示正常返回

//利用带原点位移的双重步QR方法求上H矩阵的全部特征值

//a-长度为n*n的数组,存放上H矩阵

//n-矩阵的阶数

//u-长度为n的数组,返回n个特征值的实部

//v-长度为n的数组,返回n个特征值的虚部

//eps-控制精度要求

//jt-整型变量,控制最大迭代次数

int edqr(double a[],int n,double u[],double v[],double eps,int jt);

//////////////////////////////////////////////////////////////

//求实对称矩阵的特征值及特征向量的雅格比法

//利用雅格比(Jacobi)方法求实对称矩阵的全部特征值及特征向量

//返回值小于0表示超过迭代jt次仍未达到精度要求

//返回值大于0表示正常返回

//a-长度为n*n的数组,存放实对称矩阵,返回时对角线存放n个特征值

//n-矩阵的阶数

//u-长度为n*n的数组,返回特征向量(按列存储)

//eps-控制精度要求

//jt-整型变量,控制最大迭代次数

int eejcb(double a[],int n,double v[],double eps,int jt);

//////////////////////////////////////////////////////////////

选自徐世良数值计算程序集(C)

每个程序都加上了适当地注释,陆陆续续干了几个月才整理出来的啊。

今天都给贴出来了

#include "stdio.h"

#include "math.h"

//约化对称矩阵为三对角对称矩阵

//利用Householder变换将n阶实对称矩阵约化为对称三对角矩阵

//a-长度为n*n的数组,存放n阶实对称矩阵

//n-矩阵的阶数

//q-长度为n*n的数组,返回时存放Householder变换矩阵

//b-长度为n的数组,返回时存放三对角阵的主对角线元素

//c-长度为n的数组,返回时前n-1个元素存放次对角线元素

用c语言编写一个函数实现矩阵的叉乘

#includestdio.h

void matrix(int a[][100],int a1,int a2,int b[][100],int b1,int b2,int c[][100])

{

int i,j,k;

if(a2!=b1)

{

printf("矩阵的维数错了!\n");

return;

}

for(i=0;ia1;i++)

{

for(j=0;jb2;j++)

{

c[i][j]=0;

for(k=0;ka2;k++)

c[i][j]+=a[i][k]*b[k][j];

}

}

}

int main()

{

int a1,a2,b1,b2,a[100][100],b[100][100],c[100][100],i,j;

printf("输入矩阵一的行数和列数(不超过100):\n");

scanf("%d%d",a1,a2);

for(i=0;ia1;i++)

{

for(j=0;ja2;j++)

scanf("%d",a[i][j]);

}

printf("输入矩阵一的行数和列数(不超过100):\n");

scanf("%d%d",b1,b2);

for(i=0;ib1;i++)

{

for(j=0;jb2;j++)

scanf("%d",b[i][j]);

}

matrix(a,a1,a2,b,b1,b2,c);

printf("结果:\n");

for(i=0;ia1;i++)

{

for(j=0;jb2;j++)

printf("%d ",c[i][j]);

printf("\n");

}

return 0;

}

C语言如何实现两向量叉乘

根据叉乘的计算方法可知

因此可直接通过计算三阶行列式的方法来计算两向量的叉乘

#includestdio.h

void cp()

{

double a,b,c,d,e,f,x,y,z;

printf("请输入向量a:");

scanf("%lf %lf %lf",a,b,c);

printf("请输入向量b:");

scanf("%lf %lf %lf",d,e,f);

x=b*f-c*e;//计算三阶行列式

y=c*d-a*f;

z=a*e-b*d;

printf("aXb=(%lf %lf %lf)\n",x,y,z);/

}

int main()

{

cp();

return 0;

}

运行结果如下:

编写一个函数,实现3*1和1*3矩阵的叉乘,结果存入一个3*3矩阵

#include"stdio.h"

main()

{

int i,j,a[3][1],b[1][3],c[3][3];//定义三个矩阵

printf("请输入矩阵a[3][1]:\n");

for(i=0;i3;i++)

scanf("%d",a[i][0]);//输入3*1矩阵

printf("请输入矩阵b[1][3]:\n");

for(i=0;i3;i++)

scanf("%d",b[0][i]);//输入1*3矩阵

for(i=0;i3;i++)

for(j=0;j3;j++)

c[i][j]=a[i][0]*b[0][j];//计算2个矩阵的叉乘,并存入c[3][3]

printf("a[3][1]*b[1][3]的结果是:\n");

for(i=0;i3;i++)

{

for(j=0;j3;j++)

printf("%6d ",c[i][j]);//输出结果

printf("\n");

}

getchar();

getchar();

getchar();

}


网站标题:c语言编写一个函数的叉乘 c++叉乘
分享地址:http://pwwzsj.com/article/dodsspp.html