189 8069 5689

C语言函数向量点积,c语言向量点乘

C语言求向量的矢量积、模、单位向量、还有判断2个向量是否共线,在线等答案,酱油党麻烦让让

//很简单,你对照一下吧。。。#include stdio.h

网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、重庆小程序开发公司、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了昌宁免费建站欢迎大家使用!

#include math.h

void main()

{

int i,sum=0,p[3]={1,2,3},p1[3]={2,3,4},flag=1;

double model=0,model1=0,temp;

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

{sum+=p[i]*p1[i];

model+=p[i]*p[i];

model1+=p1[i]*p1[i];

}

model=sqrt(model);

model1=sqrt(model1);

printf("向量p,p1的积: %d\n",sum);

printf("p,p1的模为:%lf %lf\n",model,model1);

temp=p[0]/p1[0];

if((p[1]*1.0/p1[1]-temp=1e-3) (p[2]*1.0/p1[2]-temp=1e-3))

flag=0;

if(flag)

printf("两向量共线!");

else

printf("不共线");

}

用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

int main()

{

int n,i;

double a[105],b[105],sum = 0;

printf("输入向量的维数:");

scanf("%d",n);

printf("输入A向量:");

for(i = 0;in;i++) scanf("%lf",a[i]);

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

for(i = 0;in;i++) scanf("%lf",b[i]);

for(i  =0;in;i++) sum += a[i]*b[i];

printf("A·B = %lf\n",sum);

return 0;

}

C语言求向量夹角的程序部分看不懂 高手帮看看分析 红字部分不懂

vectorProduct 这个函数写的有问题, 看函数的实现, length应该是指数组vecB和vecB中的数据个数, 但是在函数里明明已经写了是3, 这个参数就是多余的, 它只能等于3.

另外, 这个程序为了表示是3维向量, 定义了一个常数#define VECSIZE 3

但是在这里又直接写3, 不一致.

这样虽然不会出错, 但是给理解造成困惑.

vectorNorm 也一样.

double x[VECSIZE] = {0.0,1.0,0.0};

这个是这里作为示例, 求两个向量的夹角的第一个向量的变量,

变量名是x, 而不是X轴, 而这个向量是y轴的,

这样同样是容易让人困惑, 下面的y同理.

这样, 整个程序的含义是:

函数 vectorProduct求两个向量的点积

函数 vectorNorm 求向量的模(长度)

main函数是示例:

定义了x和y两个向量,

用vectorNorm分别求出两个向量的模, xNorm, yNorm

用vectorProduct求出两个向量的叉积, 然后除以两个向量的模, 得到夹角的余弦值, cos_phi

用acos反余弦求出两个向量的夹角(单位弧度), 然后换算成角度为单位, cos_phi


本文标题:C语言函数向量点积,c语言向量点乘
文章路径:http://cdxtjz.cn/article/phscph.html

其他资讯