大橙子网站建设,新征程启航

为企业提供网站建设、域名注册、服务器等服务

c语言中gauss函数,gauss消去法c语言

c++中 gauss(0,1) (x,y,z)的意思是?

最可能的:

创新互联公司专业为企业提供麟游网站建设、麟游做网站、麟游网站设计、麟游网站制作等企业网站建设、网页设计与制作、麟游企业网站模板建站服务,十余年麟游做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

gauss是个函数,根据你的参数(0,1),返回一个函数指针,然后通过(x,y,z)作为参数,调用这个返回的函数指针所指向的函数。

Gauss消去法C语言程序

void gauss(double a[n][n+1],double x[n])

{

int i,j,k;

double temp,s,l;

for(i=0;in-1;i++)

{

//选列主元

k=i;

for(j=i+1;jn;j++)

{ if(fabs(a[j][i])fabs(a[k][i]))

k=j;

}

//换行

if(k!=i)

for(j=i;j=n;j++)

{

temp=a[i][j];

a[i][j]=a[k][j];

a[k][j]=temp;

}

//消元

for(j=i+1;jn;j++)

{

l=1.0*a[j][i]/a[i][i];

for(k=0;kn+1;k++)

a[j][k]=a[j][k]-a[i][k]*l;

}

print(a);

printf("\n");

}

print(a);

//回代

x[n-1]=a[n-1][n]/a[n-1][n-1];

for(i=n-2;i=0;i--)

{

s=0.0;

for(j=i;jn;j++)

{

if(j==i)

continue;

s+=a[i][j]*x[j];

}

x[i]=(a[i][n]-s)/a[i][i];

}

}

C语言用高斯消元法解n元线性方程

#includemath.h

#includestdio.h

#includestdlib.h

#includeconio.h

#define NUMBER 20

#define Esc 0x1b

#define Enter 0x0d

float A[NUMBER][NUMBER+1] ,ark;

int flag,n;

void exchange(int r,int k);

float max(int k);

void message();

int main()

{

float x[NUMBER]; /*此数组用于存放方程解*/

int r,k,i,j;

char celect;

system("cls");

printf("\n\n用Gauss列主元消元法解线性方程组");

printf("\n\n1.解方程组请按Enter.");

printf("\n\n2.退出程式请按Esc.");

celect=getch();

if(celect==Esc)

exit(0);

printf("\n\n 输入方程组的维数:n=");

scanf("%d",n);

printf(" \n\n现在输入系数矩阵A和向量b:");

for(i=1;i=n;i++)

{

printf("\n\n请输入a%d1--a%d%d系数和向量b%d:",i,i,n,i);

/*实现将每一行中的系数和向量一次性输入,数之间用空格格开,输完后回车确定*/

for(j=1;j=n+1;j++) /*将刚才输入的数存入数组*/

scanf("%f",A[i][j]);

}

for(k=1;k=n-1;k++)

{

ark=max(k);

if(ark==0) /*判断方程是否为线性方程,即是否合法*/

{

printf("\n\n此方程组不合法!");message();

}

else if(flag!=k)

exchange(flag,k);

for(i=k+1;i=n;i++)

for(j=k+1;j=n+1;j++)

A[i][j]=A[i][j]-A[k][j]*A[i][k]/A[k][k];

}

x[n]=A[n][n+1]/A[n][n];

for( k=n-1;k=1;k--)

{

float me=0;

for(j=k+1;j=n;j++)

{

me=me+A[k][j]*x[j];

}

x[k]=(A[k][n+1]-me)/A[k][k];

}

for(i=1;i=n;i++)

{

printf(" \n\nx%d=%f",i,x[i]);

}

message();

return 1;

}

void exchange(int r,int k) /*交换行的矩函数*/

{

int i;

for(i=1;i=n+1;i++)

A[0][i]=A[r][i];

for(i=1;i=n+1;i++)

A[r][i]=A[k][i];

for(i=1;i=n+1;i++)

A[k][i]=A[0][i];

}

float max(int k) /*比校系数大小的函数*/

{

int i;

float temp=0;

for(i=k;i=n;i++)

if(fabs(A[i][k])temp)

{

temp=fabs(A[i][k]);

flag=i;

}

return temp;

}

void message() /*实现菜单选择的函数*/

{

printf("\n\n 继续运算按 Enter ,退出程式按 Esc!");

switch(getch())

{

case Enter: main();

case Esc: exit(0);

default:{printf("\n\n不合法的输入!");message();}

}

}

用C语言实现瑞利分布,莱斯分布,高斯分布的分布函数

C语言中的random函数可以产生均匀分布的随机变量分布区间为(0,1),假设x1,x2是由random产生的随机变量,

则y=sqrt(-2*ln(x1))为瑞利分布

theta=2*pi*x2为(0,2*pi)的均匀分布

n1=y*cos(theta),n2=y*sin(theta)为两个独立的正太分布

z=sqrt((a+n1)^2+(b+n2)^2),为莱斯分布,a ,b为常数


分享文章:c语言中gauss函数,gauss消去法c语言
分享地址:http://dzwzjz.com/article/dsejcpg.html
在线咨询
服务热线
服务热线:028-86922220
TOP