解二(三)元一次方程

我想学习更多的线性代数知识,写出更简洁,更实用的程序!!!
反正我喜欢编程,也许大佬会觉得我写的很幼稚,粗糙(没错,就是幼稚,毕竟我才看到面向对象的门),也许外行人会觉得我写的太low,没有好看的界面(没办法,我不会),但是,这只是开始,当我获得更高深的知识的时候,我一定会做的比现在好。奈何知识水平有限,眼界有限,目前的我,只做到这里。
敬请批评指正,非诚勿扰。
解二元一次方程示例
解三元一次方程示例

#include<iostream>
#include<string>
using namespace std;
int main()
{
    double str[3][4],str1[3],x[3],d[3],D;
    int n,i,j;
    cin>>n;                             //输入方程的元数(2/3)
    if(n==2){
        for(i=0;i<n;i++){                   //输入未知数的系数及等号右边的常量,记住,按照顺序从左向右依次输出
            for(j=0;j<=n;j++){
                cin>>str[i][j];
            }
        }
        D=str[0][0]*str[1][1]-str[0][1]*str[1][0];              //利用2阶行列式计算
        d[0]=str[0][2]*str[1][1]-str[1][2]*str[0][1];
        d[1]=str[0][0]*str[1][2]-str[1][0]*str[0][2];
        x[0]=d[0]/D;
        x[1]=d[1]/D;
        cout<<"x1="<<x[0]<<'\n'<<"x2="<<x[1]<<endl;
    }
    if(n==3){
        for(i=0;i<n;i++){
            for(j=0;j<=n;j++){
                cin>>str[i][j];
            }
        }                               //利用三阶行列式计算
        D=str[0][0]*str[1][1]*str[2][2]+str[0][1]*str[1][2]*str[2][0]+str[0][2]*str[1][0]*str[2][1]-str[2][0]*str[1][1]*str[0][2]-str[2][1]*str[1][2]*str[0][0]-str[2][2]*str[1][0]*str[0][1];
        d[0]=str[0][3]*str[1][1]*str[2][2]+str[0][1]*str[1][2]*str[2][3]+str[0][2]*str[1][3]*str[2][1]-str[2][3]*str[1][1]*str[0][2]-str[2][1]*str[1][2]*str[0][3]-str[2][2]*str[1][3]*str[0][1];
        d[1]=str[0][0]*str[1][3]*str[2][2]+str[0][3]*str[1][2]*str[2][0]+str[0][2]*str[1][0]*str[2][3]-str[2][0]*str[1][3]*str[0][2]-str[2][3]*str[1][2]*str[0][0]-str[2][2]*str[1][0]*str[0][3];
        d[2]=str[0][0]*str[1][1]*str[2][3]+str[0][1]*str[1][3]*str[2][0]+str[0][3]*str[1][0]*str[2][1]-str[2][0]*str[1][1]*str[0][3]-str[2][1]*str[1][3]*str[0][0]-str[2][3]*str[1][0]*str[0][1];
        for(i=0;i<n;i++){
            string s[3]={"x1=","x2=","x3="};        //用字符串类输出x=....
            x[i]=d[i]/D;
            cout<<s[i]<<x[i]<<endl;
        }
    }
    system("pause");
    return 0;
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值