用列主元Gauss消去法解方程组
5x1+8x2+6x3+4x4=2510x1+6x2+7x3+3x4=109x1+7x2+5x3+8x4=163x1+12x2+5x3+9x4=17...
5x1+8x2+6x3+4x4=25
10x1+6x2+7x3+3x4=10
9x1+7x2+5x3+8x4=16
3x1+12x2+5x3+9x4=17 展开
10x1+6x2+7x3+3x4=10
9x1+7x2+5x3+8x4=16
3x1+12x2+5x3+9x4=17 展开
1个回答
展开全部
之前写的程序c++,不是c#,给你参考下,希望对你有帮助
public void Gaussxiaoqu(float a[4][4],float b[4],int n,float x[4])
{
int i,j,k,t;
float m;
for(i=0;i<n-1;i++)
{
//寻找列主元
t=i;
m=a[i][i];
for(k=i+1;k<n;k++)
if(fabs(a[k][i])>fabs(m))
{
t=k;
m=a[k][i];
}
for(j=i;j<n;j++)
{
m=a[i][j];
a[i][j]=a[t][j];
a[t][j]=m;
}
m=b[i];
b[i]=b[t];
b[t]=m;
//列消去
for(k=i+1;k<n;k++)
{
a[k][i]=a[k][i]/a[i][i];
for(j=i+1;j<n;j++)
a[k][j]=a[k][j]-a[k][i]*a[i][j];
b[k]=b[k]-a[k][i]*b[i];
}
}
//回代过程
x[n-1]=b[n-1]/a[n-1][n-1];
for(i=n-2;i>=0;i--)
{
for(k=n-1;k>i;k--)
b[i]=b[i]-a[i][k]*x[k];
x[i]=b[i]/a[i][i];
}
}
public void Gaussxiaoqu(float a[4][4],float b[4],int n,float x[4])
{
int i,j,k,t;
float m;
for(i=0;i<n-1;i++)
{
//寻找列主元
t=i;
m=a[i][i];
for(k=i+1;k<n;k++)
if(fabs(a[k][i])>fabs(m))
{
t=k;
m=a[k][i];
}
for(j=i;j<n;j++)
{
m=a[i][j];
a[i][j]=a[t][j];
a[t][j]=m;
}
m=b[i];
b[i]=b[t];
b[t]=m;
//列消去
for(k=i+1;k<n;k++)
{
a[k][i]=a[k][i]/a[i][i];
for(j=i+1;j<n;j++)
a[k][j]=a[k][j]-a[k][i]*a[i][j];
b[k]=b[k]-a[k][i]*b[i];
}
}
//回代过程
x[n-1]=b[n-1]/a[n-1][n-1];
for(i=n-2;i>=0;i--)
{
for(k=n-1;k>i;k--)
b[i]=b[i]-a[i][k]*x[k];
x[i]=b[i]/a[i][i];
}
}
追问
不好意思 忘记跟你说了 我需要的是matlab的方法...
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询