Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

教えてください

2x+3y+4z=5
4x-6y+2z=6
3x+2y+3z=7
のプログラム書き方教えてください。

7

回答

2352

閲覧

7件の回答

評価

0

ここは主に情報交換の場であるので
さすがにプログラムの書き方から手取り足取り教えるわけにはいきません。
あと、いくら時間がないといっても名前を変えてまで連トピはよくないかと思います。

解の求め方を知りたいのであれば、適当な数学の教科書でも読めば、三次連立や行列の解き方が載ってるんじゃないですか?


まあ
>学校の宿題などをそのまま貼り付け、「わかりません。」といった質問を行う行為
ではないことを願いますけどね。

評価

0

>プログラム書き方
こういう書き方をすると、

System.out.println("2x+3y+4z=5\n4x-6y+2z=6\n3x+2y+3z=7");

程度にしかならんわけだが。

評価

0

回答有難う御座います。
もう一つ質問してもよいですか?
double [][] x={{2,3,4,5},{4,-6,2,6},{3,2,3,7}};
       
        double t=x[0][0];
        double k=x[1][0];
        double b=x[2][0];
       
        for(int i=0;i<x[0].length;i++){
        x[0][i]=x[0][i]/t;
                }
        for(int j=0;j<x[0].length;j++){
        x[1][j]=x[1][j]-x[0][j]*k; 
        x[2][j]=x[2][j]-x[0][j]*b; 
       
        }
        double d=x[1][1];
        double f=x[0][1];
        double g=x[2][1];
       for(int c=0;c<x[0].length;c++){  
        x[1][c]=x[1][c]/d;
       
        }
         for(int e=0;e<x[0].length;e++){
        x[0][e]=x[0][e]-x[1][e]*f; 
        x[2][e]=x[2][e]-x[1][e]*g; 
       
        }
        double h=x[2][2];
        double n=x[0][2];
        double m=x[1][2];
        for(int p=0;p<x[0].length;p++){  
        x[2][p]=x[2][p]/h;
        
        }
         for(int q=0;q<x[0].length;q++){
        x[0][q]=x[0][q]-x[2][q]*n; 
        x[1][q]=x[1][q]-x[2][q]*m;
        System.out.print(x[0][q]+",");
        }
ここまでは、できたのですがここからの簡単化できますか?

評価

0

ひどいロジックね

連立方程式のアルゴリズムは
いつくかあって
しかも有名なので
書店で調べると早いよ

行列の積に置き換えれば
もっと簡単に書けるでしょう

評価

0

書店で調べるまでもなかったのね
インターネットで調べたら
沢山ヒットしたよ



質問者は何も調べていないのね

評価

0

てんこさんそれは言いすぎですよ。
シヴァさんそれは、共通の数字を変数にとり大きいループでくくりだすと良いと思いますよ。
合っているか分からないですが、試してみてくださいよ。

評価

0

回答ありがとうございます。
早速試してみたいと思います。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。