說(shuō)明一下,我的示愛eclipse環(huán)境下運(yùn)行的,你要運(yùn)行,只需要用main函數(shù)里的代碼。
創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站與策劃設(shè)計(jì),永和網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:永和等地區(qū)。永和做網(wǎng)站價(jià)格咨詢:13518219792
package wenti;
public class Formular {
public static void main(String[] args) {
float x,y,z;
for( x=0;x9;x++)
for( y=0;y9;y++)
for(z=0;z9;z++)
{
if((2*x-3*y+3*z==1)((-1)*x+2*y+z==9)(0.5*x+y+2*z==11))
{
System.out.println("the formular answer is: x="+x+" y="+y+" z="+z);
}
}
}
}
結(jié)果:the formular answer is: x=2.0 y=4.0 z=3.0
/**
*?矩陣:由?m?×?n?個(gè)數(shù)Aij排成的m行n列的數(shù)表稱為m行n列的矩陣,簡(jiǎn)稱m?×?n矩陣
*?說(shuō)白了就是一個(gè)二維數(shù)組,下面的程序用整形作為數(shù)據(jù)類型,其他類型運(yùn)算大同小異
*?
*/
public?class?MatrixUtils?{
/**
*?矩陣運(yùn)算:加(減法與之類似)
*/
public?static?int[][]?matrixAdd(int[][]?addend,?int[][]?summand)?{
if?(addend?==?null?||?addend.length?==?0)?{
throw?new?IllegalArgumentException("addend?matrix?is?empty!");
}
if?(summand?==?null?||?summand.length?==?0)?{
throw?new?IllegalArgumentException("summand?matrix?is?empty!");
}
//矩陣加減要求兩個(gè)矩陣類型一致,即行列數(shù)相同
int?row?=?addend.length;
int?col?=?addend[0].length;
if?(row?!=?summand.length?||?col?!=?summand[0].length)?{
throw?new?IllegalArgumentException("summand?and?summand?not?the?same?type!");
}
int[][]?sum?=?new?int[row][col];
for?(int?i?=?0;?i??row;?i++)?{
for?(int?j?=?0;?j??col;?j++)?{
sum[i][j]?=?addend[i][j]?+?summand[i][j];
//?sum[i][j]?=?addend[i][j]?-?summand[i][j];?//減法
}
}
return?sum;
}
/**
*?矩陣運(yùn)算:乘法,沒(méi)找到除法的運(yùn)算規(guī)則
*/
public?static?int[][]?matrixMultiply(int[][]?addend,?int[][]?summand)?{
if?(addend?==?null?||?addend.length?==?0)?{
throw?new?IllegalArgumentException("addend?matrix?is?empty!");
}
if?(summand?==?null?||?summand.length?==?0)?{
throw?new?IllegalArgumentException("summand?matrix?is?empty!");
}
//兩個(gè)矩陣的乘法僅當(dāng)?shù)谝粋€(gè)矩陣A的列數(shù)和另一個(gè)矩陣B的行數(shù)相等時(shí)才能定義。如A是m×n矩陣和B是n×p矩陣,它們的乘積C是一個(gè)m×p矩陣?
int?row?=?addend.length;
int?col?=?summand[0].length;
if?(addend[0].length?!=?summand.length)?{
throw?new?IllegalArgumentException("summand?and?summand?not?the?same?type!");
}?
int[][]?sum?=?new?int[row][col];
for?(int?i?=?0;?i??row;?i++)?{
for?(int?j?=?0;?j??col;?j++)?{
for?(int?z?=?0;?z??addend[0].length;?z++)?{
sum[i][j]?+=?addend[i][z]?*?summand[z][j];
System.out.println("sum["?+?i+??"]["+?j+"]=?"?+?sum[i][j]);
}
}
}
return?sum;
}
}
這是個(gè)二元一次方程 解出的結(jié)果應(yīng)該是 x=1 y=1 代碼可以這樣寫 用的方法是窮舉。 為了節(jié)省程序運(yùn)行時(shí)間 在這里把X和Y的取值定在了10以內(nèi) 其實(shí)多了也沒(méi)用 答案只有可能是1 。 窮舉會(huì)按程序的意思去一一例舉 占用時(shí)間較長(zhǎng) 。 代碼如下: public class abc { public static void main(String args[]) { for(int x=0;x10;x++) /*定義X取值*/ for(int y=0;y10;y++) /*定義Y取值*/ { if(x+y==2x*y==1) /*定義條件公式*/ System.out.println("x="+x+" y="+y); /*輸出結(jié)果*/ } } }
可以這樣寫,代碼如下
#include "pch.h"
#include iomanip
#include iostream
# include fstream
#include iomanip
#include math.h
void Chasing_method(double **a, double *b, double *xx, int N_num);
using namespace std;
//*****************************
//追趕法求解AX=B矩陣
//*****************************
void Chasing_method(double **a, double *b, double *xx, int N_num)
{
int i, j, k;
double *gamma = new double[N_num]();
double *alpha = new double[N_num]();
double *beta = new double[N_num]();
double *y = new double[N_num]();
alpha[0] = a[0][0];
beta[0] = a[1][0] / alpha[0]; y[0] = b[0] / alpha[0];
for (i = 1; i N_num; i++)
{
gamma[i] = a[i - 1][i];
alpha[i] = a[i][i] - gamma[i] * beta[i - 1];
if (i N_num - 1)
{
beta[i] = a[i + 1][i] / alpha[i];
}
y[i] = (b[i] - gamma[i] * y[i - 1]) / alpha[i];
}
xx[N_num - 1] = y[N_num - 1];
for (i = N_num - 2; i = 0; i--)
{
xx[i] = y[i] - beta[i] * xx[i + 1];
}
}
int main()
{
int N_num = 4;
double **a = new double*[N_num]();
for (int i = 0; i N_num; i++)? ? ? ? ? ? //AX=B方程a[n][n]為系數(shù)矩陣
a[i] = new double[N_num]();? ? ? ? ?
double *b = new double[N_num]();? ? ? ? ? ?//AX=B方程b[n]為右側(cè)列矩陣
double *x = new double[N_num]();? ? ? ? ? ?//AX=B方程x[n]為方程解
ifstream fin("ab.txt");
for (int i=0; i N_num; i++)
{
for (int j=0; j N_num; j++)
{
fin a[i][j];? ? ? ? ? ?//讀取數(shù)
cout fixed setw(8) setprecision(4) a[i][j];
}
fin b[i];
cout fixed setw(8) setprecision(4) b[i] endl;
}
Chasing_method(a, b, x, N_num);
cout "追趕法求得方程組解為:" endl;
for (int i = 0; i N_num; i++)
{
cout"x["i"]=" fixed setw(8) setprecision(4) x[i] endl;
}
}