| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 512 人关注过本帖
标题:[求助] 解线性方程
只看楼主 加入收藏
王天
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-12-18
收藏
 问题点数:0 回复次数:4 
[求助] 解线性方程
3*3线性方程组:
a11*x+a12*y+a13*z+a14=0
a21*x+a22*y+a23*z+a24=0
a31*x+a32*y+a33*z+a34=0
求x,y,z的值。

要求:程序有自我验证能力
a11*x+a12*y+a13*z+a14=?
a21*x+a22*y+a23*z+a24=?
a31*x+a32*y+a33*z+a34=?

[此贴子已经被作者于2007-5-13 14:29:48编辑过]

搜索更多相关主题的帖子: 线性方程 
2007-05-13 14:28
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 
就用GUASS消员就可以了吧

2007-05-13 19:42
alading664
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-1-25
收藏
得分:0 
具体数学算法是这样
|a11 a12 a13|
D=|a21 a22 a23|
|a31 a32 a33|
|-a14 a12 a13|
D1=|-a24 a22 a23|
|-a34 a32 a33|
|a11 -a14 a13|
D2=|a21 -a24 a23|
|a31 -a34 a33|
|a11 a12 -a14|
D3=|a21 a22 -a24|
|a31 a32 -a34|
x=D/D1
y=D/D2
z=D/D3
用双向链表来实现这个cramer算法
2007-05-14 00:10
上帝的忏悔书
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-11-26
收藏
得分:0 
#include<stdio.h>
#define N  3
int ff(int a[2][2]);
void gg(int a[N][N+1]);
void ss(int a[N][N+1]);
float T(int y);
int i,j,l,y;
int a[N][N+1];
    float x[N];
void mm(int a[N][N+1])
{
    for(i=0;i<N;i++)
        for(j=0;j<N+1;j++)
            scanf("%d",&a[i][j]);
    ss(a);
    gg(a);
}
void ss(int a[N][N+1])
{   
    for (l=0;l<N;l++)
    {
        for(i=l;i<N-1;i++)   
        {
            int n=a[i+1][l];
            for(j=l;j<N+1;j++)
            {
                int m=a[l][l];
                int b[2][2]={m ,n,a[l][j],a[i+1][j]};
                a[i+1][j]=ff(b);
            }
        }
    gg(a);
    printf("\n");
    }
}
int ff(int a[2][2])
{
    return a[0][0]*a[1][1]-a[0][1]*a[1][0];
}
void gg(int a[N][N+1])
{
    for(i=0;i<N;i++)
    {
        for(j=0;j<=N;j++)
            printf("%d ",a[i][j]);
            printf("\n");
    }
}
void main()
{
    printf("请输入%d元线性方程系数\n",N);
    mm(a);
    x[N-1]=float(a[N-1][N])/a[N-1][N-1];
    for(y=N-1;y>=0;y--)
        x[y]=(a[y][N]-T(y))/a[y][y];
    for(y=0;y<N;y++)
        printf("x%d=%f\n",y+1,x[y]);
}
float T(int y)
{
    float s=0;
    int o=y;
    while(y+1<N)
    {
        s+=x[y+1]*a[o][y+1];
        y++;
    }
    return s;
}

 这个如何?
2012-11-26 12:32
上帝的忏悔书
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-11-26
收藏
得分:0 
方程形式为a11 a22 a33 =a44
2012-11-26 12:35
快速回复:[求助] 解线性方程
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019103 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved