#processing #simultaneous #equations
#обработка #одновременное #уравнения
Вопрос:
Я новичок в обработке, и это сбивает меня с толку гораздо больше, чем когда-либо делали Java или Javascript! Я должен решать одновременные уравнения для задания в колледже. (Это класс, в котором они на самом деле не объясняют нам, что они делают в коде.) Я знаю, как они вычисляют код с помощью двух уравнений в приведенном ниже коде, однако теперь они хотят, чтобы мы сделали это с помощью 3 уравнений. Кто-нибудь знает, как я это сделаю? Я предполагал, что мне просто нужно будет добавить дополнительные биты в каждую матрицу, но это, очевидно, сложнее. У меня есть 3 уравнения:
x y z = 9 x 2y 3z = 23 x 5y-3z =-7
Код для двух уравнений следующий:
// import Jama.*;
// Solve 3x 2y=3
// -2x-y=-1
// AX=B
// X=InvA B
import java.io.StringWriter;
void setup()
{
size(150,110);
fill(0,0,0);
double [][] Aline12={{ 3, 2}, // Create a 2D array to store A
{-2,-1}};
Matrix A = new Matrix(Aline12); // Copy array to A Matrix data structure
double [][] B1ine12 = {{3}, // Create a 2D array to store B
{-1}};
Matrix B = new Matrix(B1ine12); // Copy array to B Matrix data structure
Matrix X=(A.inverse()).times(B); // Solve for X
text("A",10,12);
app_print(A,0,16);
text("B",110,12);
app_print(B,100,16);
text("X",10,65);
app_print(X,0,70);
}
// Method added to allow printing on applet screen at (x,y)
void app_print(Matrix P, int x, int y)
{
StringWriter stringWriter = new StringWriter();
PrintWriter writer = new PrintWriter(stringWriter);
P.print(writer,5,2);
text(stringWriter.toString(),x,y);
}
Комментарии:
1. Как бы вы решили это на бумаге, без компьютера?
Ответ №1:
Вы решите это так же, как решаете систему из 2 уравнений, просто добавьте третью переменную. Также на практике вы почти никогда не захотите использовать обратную матрицу, для решения есть более эффективные методы, такие как разложение LU Ax=B
. Поскольку вы используете Jama, вы можете попробовать следующий фрагмент
double [][] Aline12={{1.0, 1.0, 1.0}, // Create a 2D array to store A
{1.0, 2.0. 3.0},
{1.0, 5.0, -3.0}};
Matrix A = new Matrix(Aline12); // Copy array to A Matrix data structure
double [][] B1ine12 = {{9}, // Create a 2D array to store B
{23},
{-7}};
Matrix B = new Matrix(B1ine12); // Copy array to B Matrix data structure
Matrix X = A.solve(B) // Solve for X. See Jama documentation on solve
Документы Jama
http://math.nist.gov/javanumerics/jama/doc/