java求解方程组代码 java解析数学算式( 二 )


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; iN_num; i++)
{
gamma[i] = a[i - 1][i];
alpha[i] = a[i][i] - gamma[i] * beta[i - 1];
if (iN_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; iN_num; i++)//AX=B方程a[n][n]为系数矩阵
a[i] = new double[N_num]();
double *b = new double[N_num]();//AX=B方程b[n]为右侧列矩阵
double *x = new double[N_num]();//AX=B方程x[n]为方程解
ifstream fin("ab.txt");
for (int i=0; iN_num; i++)
{
for (int j=0; jN_num; j++)
{
fina[i][j];//读取数
coutfixedsetw(8)setprecision(4)a[i][j];
}
finb[i];
coutfixedsetw(8)setprecision(4)b[i]endl;
}
Chasing_method(a, b, x, N_num);
cout"追赶法求得方程组解为:"endl;
for (int i = 0; iN_num; i++)
{
cout"x["i"]="fixedsetw(8)setprecision(4)x[i]endl;
}
}
JAVA编写求解一元多次方程的程序,要求如下:import java.io.*;
import java.util.*;public class SolveEquation
{
void print()throws IOException
{
char ch='y';
System.out.println("求解几次方程?1:一次 2:二次 3:三次");
Scanner sLine=new Scanner(System.in);
int pm=sLine.nextInt();
if(pm==1)
{
System.out.println("你选择的是一元一次方程:");
SolveEquation.SolveSimpleEquation fc=new SolveEquation().new SolveSimpleEquation();
fc.SolveSimpleEquation();
}
else if(pm==2)
{
System.out.println("你选择的是一元二次方程:");
SolveEquation.SolveQuadraticEquation fc=new SolveEquation().new SolveQuadraticEquation();
fc.SolveQuadraticEquation();
}
else if(pm==3)
{
System.out.println("你选择的是一元三次方程:");
SolveEquation.SolveCubicEquation fc=new SolveEquation().new SolveCubicEquation();
fc.SolveCubicEquation();
}
else
{
print();
}
System.out.println("你是否想继续:(y/n)");
ch=(char)System.in.read()()
System.in.skip(2);
if(ch=='y')
{
print();
}
else if(ch=='n')
{
System.out.println("Good luck!");
}
else
{
print();
}
public static void main (String args[]) throws IOException
{
SolveEquation se=new SolveEquation();
se.print();
}
interface I1
{
void SolveCubicEquation();
}
interface I2
{
void SolveQuadraticEquation();
}
interface I3
{
void SolveSimpleEquation();
}
class SolveCubicEquation implements I1
{
public void SolveCubicEquation()
{
System.out.println("请输入形如一元三次方程mx^3+nx^2+tx+s=0的四个系数");
Scanner sce=new Scanner(System.in);
double m=sce.nextDouble();
double n=sce.nextDouble();
double t=sce.nextDouble();
double s=sce.nextDouble();
if(m==0)
{
System.out.print("输入错误!");
}
else
{
double a=n/m;

推荐阅读