基本线性代数子程序库(BLAS)

基本线性代数子程序库(BLAS),第1张

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12348454.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存