假如我們有 鐵,銅,鋁三種金屬材料,我們可以用一個重量向量來記錄我們所擁有三種金屬的重量亦即
這三種金屬每公斤單位價格可以用價格向量來表示即
兩個向量內積的定義是將兩個向量,各個相對應的元素乘積加總起來。要計算這些金屬總值時,可以利用向量內積來計算。
向量在幾何數學上很有用,例如一個平行四邊形,四邊形兩邊的向量內積,即為它的面積。
以下為計算內積函式的虛擬碼
初始內積值為0 for(引數i由最小到最大)
向量內積=向量內積+A向量的i元素的值* B向量的i元素的值
endfor i
虛擬碼只管到大方向,而正式程式會更注重細節
範例程式:
#include "c4mlib.h"
int main(){
C4M_DEVICE_set();
int i,ilen;
float innerPro,vecA[]={1.0,2.0,3.0},vecB[]={4.0,5.0,6.0};
ilen=sizeof(vecA)/sizeof(vecA[0]);
innerPro=0.; /*初始內積值為0*/
for(i=0;i
{
innerPro=innerPro+vecA[i]*vecB[i];
}
printf("inner product of vecA and vecB %f\n",innerPro);
return 0;
}
請試試看撰寫y=Ax的陣列運算程式,其中x為3x1向量A為4x3陣列,而y為4x1向量。
其演算法如下:
for(引數i由最小到最大)
初始y(i)為0
for(引數j由最小到最大)
y(i)=y(i)+A(i,j)*x(j)
endfor j
endfor I