Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <iostream>
- void jacobian(double jacob[3][3], double x, double y, double z) {
- //Macierz Jacobiego
- jacob[0][0] = 2 * x; jacob[0][1] = 2 * y; jacob[0][2] = 2 * z;
- jacob[1][0] = 2 * x; jacob[1][1] = 2 * y; jacob[1][2] = 0;
- jacob[2][0] = 2 * x; jacob[2][1] = -1; jacob[2][2] = 0;
- }
- void macierzOdwrotna(double **jacob) {
- double det = jacob[0][0] * jacob[1][1] * jacob[2][2] + jacob[0][1] * jacob[1][2] * jacob[2][0] + jacob[0][2] * jacob[1][0] * jacob[2][1]; // jeszcze trzeba odjac
- double jacobOdw[3][3];
- //Macierz dopelnien
- jacobOdw[0][0] = jacob[1][1] * jacob[2][2] - jacob[1][2] * jacob[2][1];
- jacobOdw[0][1] = -(jacob[1][0] * jacob[2][2] - jacob[1][2] * jacob[2][0]);
- jacobOdw[0][2] = jacob[1][0] * jacob[2][1] - jacob[1][1] * jacob[2][0];
- jacobOdw[1][0] = -(jacob[0][1] * jacob[2][2] - jacob[0][2] * jacob[2][1]);
- jacobOdw[1][1] = jacob[0][0] * jacob[2][2] - jacob[0][2] * jacob[2][0];
- jacobOdw[1][2] = -(jacob[0][0] * jacob[2][1] - jacob[0][1] * jacob[2][0]);
- jacobOdw[2][0] = jacob[0][1] * jacob[1][2] - jacob[0][2] * jacob[1][1];
- jacobOdw[2][1] = -(jacob[0][0] * jacob[1][2] - jacob[0][2] * jacob[1][0]);
- jacobOdw[2][2] = jacob[0][0] * jacob[1][1] - jacob[0][1] * jacob[1][0];
- //Transponowanie
- for (int i = 0; i < 3; i++) {
- for (int j = 0; j < 3; j++) {
- std::swap(jacobOdw[i][j], jacobOdw[j][i]);
- }
- }
- //Ostateczna postac macierzy odwrotnej
- for (int i = 0; i < 3; i++) {
- for (int j = 0; j < 3; j++) {
- jacobOdw[i][j] /= det;
- }
- }
- }
- int main()
- {
- double x = 1, y = 1, z = 1;
- double jacob[3][3];
- jacobian(jacob, x, y, z);
- std::cout << jacob[0][0];
- system("PAUSE");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement