重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
向量一般用二维的坐标表示 你可以直接用坐标点表示 终点减起始点(end start)
站在用户的角度思考问题,与客户深入沟通,找到郓城网站设计与郓城网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、成都网站建设、企业官网、英文网站、手机端网站、网站推广、申请域名、虚拟主机、企业邮箱。业务覆盖郓城地区。
我这里给你结构体的表示方法
struct Point
{
double x;
double y;
};//坐标表示
struct Vactor
{
point start;
point end;
};//向量 表示
向量在实际运用举例
double product (V*v1)
{
V vt1,vt2;
vt1.strat.x=vt1.start.y=0;
vt1.end.x=V1-end.x-v1-start.x;
vt1.end.y=V1-end.y-v1-start.y;
////////////以下可以写自己设计的算法函数
}
你可以尝试运用此方法求个点积 引申 进而判断线与线 面与面的关系
//数值计算程序-特征值和特征向量
//////////////////////////////////////////////////////////////
//约化对称矩阵为三对角对称矩阵
//利用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个元素存放次对角线元素
//使用动态分配
#include stdio.h
#include stdlib.h
#include malloc.h
int i,L;
char *p;
void main() {
for (i=0;i20000;i++) {
L=rand();
p=malloc(L);
if (NULL==p) {
printf("malloc error!\n");
continue;
}
memset(p,0,L);
free(p);
}
}
//不使用动态分配
#include stdio.h
#include stdlib.h
#include memory.h
#define MAXLEN 30000
int i,L;
char buf[MAXLEN];
char *p;
void main() {
p=buf[0];
for (i=0;i20000;i++) {
L=rand();
if (LMAXLEN) {
printf("LMAXLEN==%d, ignore spilth.\n",MAXLEN);
L=MAXLEN;
}
memset(p,0,L);
}
}
回复
1#
试试在加上一个nop,看看怎么样。不行就把.title去掉,看看怎么样。
#include stdio.h
#include stdlib.h
typedef struct {
int n;
double *value;
}Vector;
void createvector(Vector *x, int n){
x-n=n;
double *value=malloc(sizeof(double)*n);
x-value=value;
}
void deletevector(Vector *x){
free(x-value);
}
int main()
{
int n,i;
Vector *temp=malloc(sizeof(Vector));
printf("n=");
scanf("%d",n);
createvector(temp,n);
for(i=0;in;i++){
scanf("%lf",temp-value+sizeof(double)*i);
}
printf("%d\n",n);
for(i=0;in;i++){
printf("%lf\n",*(temp-value+sizeof(double)*i));
}
deletevector(temp);
free(temp);
return 0;
}
#includestdio.h
struct vect
{
int v1;
int v2;
int v3;
};
void a(struct vect *v,int n)
{
v-v1=(v-v1)*n;
v-v2=(v-v2)*n;
v-v3=(v-v3)*n;
}
main()
{
struct vect myvector;
myvector.v1=10;
myvector.v2=20;
myvector.v3=30;
printf("(%d,%d,%d)\n",myvector.v1,myvector.v2,myvector.v3);
a( myvector ,5);
printf("(%d,%d,%d)\n",myvector.v1,myvector.v2,myvector.v3);
getch();
}