1.1、 BLAS是一个涉及基本线性代数 *** 作的数学函数标准,BLAS一般分为三级。第一级,主要完成向量与向量或者向量与标量以及范数之间的运算。第二级,主要雀腊老涉及矩阵与向量之间的 *** 作。第三级主要涉及矩阵与矩阵之局肢间的 *** 作。
1.2、 BLAS中的术顷升语释义
高则升斯-赛德尔迭代法#include <stdio.h>
#include <conio.h>
#include <alloc.h>
#include <镇迹math.h>
#define N 100
float *GauseSeidel(float *a,int n)
{
int i,j,nu=0
float *x,dx
x=(float *)malloc(n*sizeof(float))
for(i=0i <=n-1i++)
x[i]=0.0
do
{
for(i=0i <=n-1i++)
{
float d=0.0
for(j=0j <=n-1j++)
d+=*(a+i*(n+1)+j)*x[j]
dx=(*(a+i*(n+1)+n)-d)/(*(a+i*(n+1)+i))
x[i]+=dx
}
if(nu>=N)
{
printf( "迭代发散\n ")
exit(1)
}
nu++
}
while(fabs(dx)>孙旅老 1e-6)
return x
}
main()
{
int i
float *x
float c[12]={5,2,1,8,2,8,-3,21,1,-3,-6,1}
float *GauseSeidel(float *,int)
x=GauseSeidel(c,3)
clrscr()
for(i=0i <=2i++)
printf( "x[%d]=%f\n ",i,x[i])
getch()
}
高斯列主元消去法function X=Gauss_pivot(A,B)
% 用Gauss列主主元消缓谈去法解线性方扰清碰程组AX=B
%X是未知向正和量
n=length(B)
X=zeros(n,1)
c=zeros(1,n)
d1=0
for i=1:n-1
max=abs(A(i,i))
m=i
for j=i+1:n
if max<abs(A(j,i))
max=abs(A(j,i))
m=j
end
end
if(m~=i)
for k=i:n
c(k)=A(i,k)
A(i,k)=A(m,k)
A(m,k)=c(k)
end
d1=B(i)
B(i)=B(m)
B(m)=d1
end
for k=i+1:n
for j=i+1:n
A(k,j)=A(k,j)-A(i,j)*A(k,i)/A(i,i)
end
B(k)=B(k)-B(i)*A(k,i)/A(i,i)
A(k,i)=0
end
end
%回代求解
X(n)=B(n)/A(n,n)
for i=n-1:-1:1
sum=0
for j=i+1:n
sum=sum+A(i,j)*X(j)
end
X(i)=(B(i)-sum)/A(i,i)
End
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)