Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Tyutterin_Yakov_Z1411_with_1

.pdf
Скачиваний:
0
Добавлен:
07.01.2025
Размер:
3.55 Mб
Скачать

Задание 2:

import java.util.Arrays;

import static java.lang.Math.*;

public class Main {

public static void main(String[] args) { System.out.println(Arrays.toString(generate(0, 1, 0.2)));

System.out.println(Arrays.toString(generate(2, 1, -0.4)));

}

private static double[] generate(double start, double end, double step) { int length = (int) abs((max(start, end) - min(start, end)) / step) +

1;

double[] result = new double[length];

for (int i = 0; i < length; i++, start += step) { result[i] = start;

}

return result;

}

}

Результат:

Задание 3 (график построен с шагом 0.3):

Задание 4 (график построен с шагом 0.25):

Задание 5:

import static java.lang.Math.pow; import static java.lang.Math.sqrt;

public class Main {

public static void main(String[] args) { Vector vA = new Vector(8.1, -9.7, 1.6); Vector vB = new Vector(6.1, 7.5, -0.9); System.out.println(vA); System.out.println(vB);

System.out.println("(A)Скалярное произведение: " + vA.scalarMult(vB));

System.out.println("(Б)Длина(модуль) вектора A: " + vA.length()); System.out.println("(В)Произведение векторов: " + vA.vectorMult(vB));

}

private record Vector(double x, double y, double z) { public double scalarMult(Vector c) {

return x * c.x + y * c.y + z * c.z;

}

public Vector vectorMult(Vector c) { double tmpX = y * c.z - z * c.y; double tmpY = -(x * c.z - z * c.x); double tmpZ = z * c.y - y * c.x; return new Vector(tmpX, tmpY, tmpZ);

}

public double length() {

return sqrt(pow(x, 2) + pow(y, 2) + pow(z, 2));

}

@Override

public String toString() {

return "x = " + x + ", y = " + y + ", z = " + z;

}

}

}

Результат:

Задание 6:

import static java.lang.Math.pow; import static java.lang.Math.sqrt;

public class Main {

public static void main(String[] args) { Vector a = new Vector(2.5, 0, 0); Vector b = new Vector(6.5, 5.9, 0); Vector c = new Vector(-1.7, -2.6, 8.5);

double v = b.vectorMult(c).scalarMult(a); System.out.println(v);

}

private record Vector(double x, double y, double z) { public double scalarMult(Vector c) {

return x * c.x + y * c.y + z * c.z;

}

public Vector vectorMult(Vector c) { double tmpX = y * c.z - z * c.y; double tmpY = -(x * c.z - z * c.x); double tmpZ = z * c.y - y * c.x; return new Vector(tmpX, tmpY, tmpZ);

}

public double length() {

return sqrt(pow(x, 2) + pow(y, 2) + pow(z, 2));

}

@Override

public String toString() {

return "x = " + x + ", y = " + y + ", z = " + z;

}

}

}

Результат:

ЛАБОРАТОРНАЯ РАБОТА 4. Двумерные массивы и матрицы

Задание 1:

а)

import java.util.Arrays;

public class Main {

public static void main(String[] args) { int[][] c = {{9, 3, -5}, {-3, -5, -1}}; int[][] a = {{9, -7, -4}, {1, 9, 0}}; int[][] result = new int[2][];

for (int i = 0; i < c.length; i++) { int[] lineC = c[i];

int[] lineA = a[i];

int[] resultLine = new int[lineA.length]; for (int j = 0; j < lineC.length; j++) {

resultLine[j] = lineA[j] + lineC[j];

}

result[i] = resultLine;

}

System.out.println("Сумма: " + Arrays.deepToString(result));

int[][] resultMin = new int[2][]; for (int i = 0; i < c.length; i++) {

int[] lineC = c[i]; int[] lineA = a[i];

int[] resultLine = new int[lineA.length]; for (int j = 0; j < lineC.length; j++) { resultLine[j] = lineA[j] - lineC[j];

}

resultMin[i] = resultLine;

}

System.out.println("Разность: " + Arrays.deepToString(resultMin));

}

}

Результат:

б)

import java.util.Arrays;

public class Main {

public static void main(String[] args) { int[][] c = {{9, 3, -5}, {-3, -5, -1}};

int[][] b = {{5, 3, -7}, {4, 3, -9}, {-6, 2, 9}}; final int[][] result = multiply(c, b); System.out.println(Arrays.deepToString(result));

}

private static int[][] multiply(final int[][] matrixA, final int[][] matrixB) {

final var matrixM = new int[matrixA.length][matrixB[0].length];

for (var i = 0; i < matrixM.length; i++) {

for (var j = 0; j < matrixM[0].length; j++) { matrixM[i][j] = 0;

for (var k = 0; k < matrixA[0].length; k++) { matrixM[i][j] += matrixA[i][k] * matrixB[k][j];

}

}

}

return matrixM;

}

}

Результат:

в)

import java.util.Arrays;

public class Main {

public static void main(String[] args) { int[][] c = {{9, 3, -5}, {-3, -5, -1}};

int[][] b = {{5, 3, -7}, {4, 3, -9}, {-6, 2, 9}}; final int[][] result = multiply(c, b);

for (int[] line : result) {

for (int j = 0; j < line.length; j++) { line[j] *= 2;

}

}

System.out.println(Arrays.deepToString(result));

}

private static int[][] multiply(final int[][] matrixA, final int[][] matrixB) {

final var matrixM = new int[matrixA.length][matrixB[0].length];

for (var i = 0; i < matrixM.length; i++) {

for (var j = 0; j < matrixM[0].length; j++) { matrixM[i][j] = 0;

for (var k = 0; k < matrixA[0].length; k++) { matrixM[i][j] += matrixA[i][k] * matrixB[k][j];

}

}

}

return matrixM;

}

}

Результат:

Задание 2:

В комментариях к коду описано то, почему задание некорректно. В результате будем вычислять значение выражения: (A+C) * B^2 + (A + C)

import java.util.Arrays;

public class Main {

public static void main(String[] args) { int[][] a = {{9, -7, -4}, {1, 9, 0}};

int[][] b = {{5, 3, -7}, {4, 3, -9}, {-6, 2, 9}}; int[][] c = {{9, 3, -5}, {-3, -5, -1}};

//A + C

int[][] sumAC = sum(a, c); int[][] powB = multiply(b, b);

//В качестве T из уравнения в задании возьмем 2

//(A + C)^2, но полученную матрицу - нельзя перемножить(возвести в степень), так как количество строк не совпадает

//с количеством столбцов

int[][] result = sum(sumAC, multiply(sumAC, powB)); System.out.println(Arrays.deepToString(result));

}

private static int[][] sum(final int[][] matrixA, final int[][] matrixB)

{

int[][] result = new int[matrixA.length][matrixB[0].length]; for (int i = 0; i < matrixA.length; i++) {

int[] lineA = matrixA[i]; int[] lineB = matrixB[i];

int[] resultLine = new int[lineA.length]; for (int j = 0; j < lineB.length; j++) { resultLine[j] = lineA[j] + lineB[j];

}

result[i] = resultLine;

}

return result;

}

private static int[][] multiply(final int[][] matrixA, final int[][] matrixB) {

if (matrixA[0].length != matrixB.length) { System.err.println("Эти матрицы нельзя перемножить"); return null;

}

final var matrixM = new int[matrixA.length][matrixB[0].length]; for (var i = 0; i < matrixM.length; i++) {

for (var j = 0; j < matrixM[0].length; j++) { matrixM[i][j] = 0;

for (var k = 0; k < matrixA[0].length; k++) { matrixM[i][j] += matrixA[i][k] * matrixB[k][j];

}

}

}

return matrixM;

}

}

Результат:

Задание 3:

import java.util.Arrays;

public class Main {

public static void main(String[] args) { int[] vector1 = {5, 1, -3};

int[][] matrix = {{9, 3, 1}, {-7, 8, -1}, {8, 6, -6}}; int[] vector2 = {-2, 3, 1};

System.out.println(Arrays.deepToString(multiply(multiply(matrix, vector1), vector2)));

}

private static int[][] multiply(int[][] matrix, int[] vector) { for (int[] line : matrix) {

for (var j = 0; j < matrix[0].length; j++) { line[j] *= vector[j];

}

}

return matrix;

}

}

Результат:

Задание 4:

ЛАБОРАТОРНАЯ РАБОТА 5. Блочные матрицы

Задание 1: a)

import java.util.Arrays;

public class Main {

public static void main(String[] args) { int[][] a = {{9, 3}, {7, 8}}; int[][] b = {{4, 1}, {2, 3}}; int[][] c = {{1, 1}, {1, 1}}; int[][] d = {{2, 2}, {2, 2}}; int[][] result = new int[4][4];

insert(result, a, 0, 0); insert(result, b, 0, 2); insert(result, c, 2, 0);

insert(result, d, 2, 2);

for (int[] ints : result) { System.out.println(Arrays.toString(ints));

}

}

private static void insert(int [][] result, int[][] matrix, int line, int col) {

int i = 0;

int maxLine = line + matrix.length; int maxCol = col + matrix.length; for (; line < maxLine; line++) {

int j = 0;

for (int temp = col; temp < maxCol; temp++) { result[line][temp] = matrix[i][j++];

}

i++;

}

}

}

Результат:

б-в)

import java.util.Arrays; public class Main {

public static void main(String[] args) { double[][] a = {{9, 3}, {7, 8}}; double[][] b = {{4, 1}, {2, 3}}; double[][] c = {{1, 1}, {1, 1}}; double[][] d = {{2, 2}, {2, 2}}; double[][] k = new double[4][4];

insert(k, a, 0, 0); insert(k, b, 0, 2); insert(k, c, 2, 0); insert(k, d, 2, 2);

printMatrix(k, "Матрица K:");

double[][] s = {{5, 9}, {1, 2}}; double[][] a1 = {{1}, {5}}; double[][] b1 = {{-4, 7}}; double[][] c1 = {{2.1}}; double[][] m = new double[3][3]; insert(m, s, 0, 0);

insert(m, a1, 0, 2); insert(m, b1, 2, 0); insert(m, c1, 2, 2); printMatrix(m, "Матрица M:");

printMatrix(getMatrix(k, 1, 0, 3, 2), "Первый промежуток: "); printMatrix(getMatrix(k, 2, 2, 4, 4), "Второй промежуток: "); printMatrix(getMatrix(m, 2, 0, 3, 3), "3-я строка из матрицы M: ");

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]