//數(shù)值計算程序-特征值和特征向量
創(chuàng)新互聯(lián)公司專注于畢節(jié)企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計,成都做商城網(wǎng)站。畢節(jié)網(wǎng)站建設(shè)公司,為畢節(jié)等地區(qū)提供建站服務(wù)。全流程按需定制,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
//////////////////////////////////////////////////////////////
//約化對稱矩陣為三對角對稱矩陣
//利用Householder變換將n階實對稱矩陣約化為對稱三對角矩陣
//a-長度為n*n的數(shù)組,存放n階實對稱矩陣
//n-矩陣的階數(shù)
//q-長度為n*n的數(shù)組,返回時存放Householder變換矩陣
//b-長度為n的數(shù)組,返回時存放三對角陣的主對角線元素
//c-長度為n的數(shù)組,返回時前n-1個元素存放次對角線元素
void eastrq(double a[],int n,double q[],double b[],double c[]);
//////////////////////////////////////////////////////////////
//求實對稱三對角對稱矩陣的全部特征值及特征向量
//利用變型QR方法計算實對稱三對角矩陣全部特征值及特征向量
//n-矩陣的階數(shù)
//b-長度為n的數(shù)組,返回時存放三對角陣的主對角線元素
//c-長度為n的數(shù)組,返回時前n-1個元素存放次對角線元素
//q-長度為n*n的數(shù)組,若存放單位矩陣,則返回實對稱三對角矩陣的特征向量組
// 若存放Householder變換矩陣,則返回實對稱矩陣A的特征向量組
//a-長度為n*n的數(shù)組,存放n階實對稱矩陣
int ebstq(int n,double b[],double c[],double q[],double eps,int l);
//////////////////////////////////////////////////////////////
//約化實矩陣為赫申伯格(Hessen berg)矩陣
//利用初等相似變換將n階實矩陣約化為上H矩陣
//a-長度為n*n的數(shù)組,存放n階實矩陣,返回時存放上H矩陣
//n-矩陣的階數(shù)
void echbg(double a[],int n);
//////////////////////////////////////////////////////////////
//求赫申伯格(Hessen berg)矩陣的全部特征值
//返回值小于0表示超過迭代jt次仍未達(dá)到精度要求
//返回值大于0表示正常返回
//利用帶原點位移的雙重步QR方法求上H矩陣的全部特征值
//a-長度為n*n的數(shù)組,存放上H矩陣
//n-矩陣的階數(shù)
//u-長度為n的數(shù)組,返回n個特征值的實部
//v-長度為n的數(shù)組,返回n個特征值的虛部
//eps-控制精度要求
//jt-整型變量,控制最大迭代次數(shù)
int edqr(double a[],int n,double u[],double v[],double eps,int jt);
//////////////////////////////////////////////////////////////
//求實對稱矩陣的特征值及特征向量的雅格比法
//利用雅格比(Jacobi)方法求實對稱矩陣的全部特征值及特征向量
//返回值小于0表示超過迭代jt次仍未達(dá)到精度要求
//返回值大于0表示正常返回
//a-長度為n*n的數(shù)組,存放實對稱矩陣,返回時對角線存放n個特征值
//n-矩陣的階數(shù)
//u-長度為n*n的數(shù)組,返回特征向量(按列存儲)
//eps-控制精度要求
//jt-整型變量,控制最大迭代次數(shù)
int eejcb(double a[],int n,double v[],double eps,int jt);
//////////////////////////////////////////////////////////////
選自徐世良數(shù)值計算程序集(C)
每個程序都加上了適當(dāng)?shù)刈⑨?,陸陸續(xù)續(xù)干了幾個月才整理出來的啊。
今天都給貼出來了
#include "stdio.h"
#include "math.h"
//約化對稱矩陣為三對角對稱矩陣
//利用Householder變換將n階實對稱矩陣約化為對稱三對角矩陣
//a-長度為n*n的數(shù)組,存放n階實對稱矩陣
//n-矩陣的階數(shù)
//q-長度為n*n的數(shù)組,返回時存放Householder變換矩陣
//b-長度為n的數(shù)組,返回時存放三對角陣的主對角線元素
//c-長度為n的數(shù)組,返回時前n-1個元素存放次對角線元素
#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("矩陣的維數(shù)錯了!\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("輸入矩陣一的行數(shù)和列數(shù)(不超過100):\n");
scanf("%d%d",a1,a2);
for(i=0;ia1;i++)
{
for(j=0;ja2;j++)
scanf("%d",a[i][j]);
}
printf("輸入矩陣一的行數(shù)和列數(shù)(不超過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("結(jié)果:\n");
for(i=0;ia1;i++)
{
for(j=0;jb2;j++)
printf("%d ",c[i][j]);
printf("\n");
}
return 0;
}
根據(jù)叉乘的計算方法可知
因此可直接通過計算三階行列式的方法來計算兩向量的叉乘
#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;
}
運(yùn)行結(jié)果如下:
#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]的結(jié)果是:\n");
for(i=0;i3;i++)
{
for(j=0;j3;j++)
printf("%6d ",c[i][j]);//輸出結(jié)果
printf("\n");
}
getchar();
getchar();
getchar();
}
分享題目:c語言編寫一個函數(shù)的叉乘 c++叉乘
網(wǎng)站地址:http://chinadenli.net/article38/dodsspp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、標(biāo)簽優(yōu)化、網(wǎng)站策劃、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)