Tích hợp số nhanh Python

Hơn 1500 sơ đồ tích hợp số cho các đoạn thẳng, hình tròn, đĩa, hình tam giác, hình tứ giác, hình cầu, quả bóng, tứ diện, hình lục giác, hình nêm, hình chóp, n hình cầu, n hình cầu, n hình lập phương, n hình đơn giản, nửa 1D-

Ví dụ: để tích hợp số lượng bất kỳ chức năng nào trong bất kỳ khoảng thời gian nhất định nào, hãy cài đặt quadpy từ Chỉ mục gói Python với

pip install quadpy

và làm

import numpy as np
import quadpy


def f[x]:
    return np.sin[x] - x


val, err = quadpy.quad[f, 0.0, 6.0]

Điều này giống như scipy với việc bổ sung quadpy xử lý các tích phân phức-, véc-tơ-, giá trị ma trận và "khoảng" trong không gian có kích thước tùy ý

Để lấy tích phân trên một tam giác, hãy làm

import numpy as np
import quadpy


def f[x]:
    return np.sin[x[0]] * np.sin[x[1]]


triangle = np.array[[[0.0, 0.0], [1.0, 0.0], [0.7, 0.5]]]

# get a "good" scheme of degree 10
scheme = quadpy.t2.get_good_scheme[10]
val = scheme.integrate[f, triangle]

Hầu hết các miền có

scheme.points
scheme.weights
scheme.degree
scheme.source
scheme.test_tolerance

scheme.show[]
scheme.integrate[
    # ...
]
2. Nếu bạn muốn sử dụng một lược đồ cụ thể, bạn có thể chọn một lược đồ từ từ điển
scheme.points
scheme.weights
scheme.degree
scheme.source
scheme.test_tolerance

scheme.show[]
scheme.integrate[
    # ...
]
3

Tất cả các phương án có

scheme.points
scheme.weights
scheme.degree
scheme.source
scheme.test_tolerance

scheme.show[]
scheme.integrate[
    # ...
]

và nhiều người có

scheme.points_symbolic
scheme.weights_symbolic

quadpy hoàn toàn được vector hóa, vì vậy nếu bạn muốn tính tích phân của một hàm trên nhiều miền cùng một lúc, bạn có thể cung cấp tất cả chúng trong một lệnh gọi

scheme.points
scheme.weights
scheme.degree
scheme.source
scheme.test_tolerance

scheme.show[]
scheme.integrate[
    # ...
]
4, e. g. ,

________số 8

Điều tương tự cũng xảy ra với các chức năng có đầu ra được vector hóa, e. g. ,

def f[x]:
    return [np.sin[x[0]], np.sin[x[1]]]

Thêm ví dụ dưới test/examples_test. py

Đọc thêm về số chiều của mảng đầu vào/đầu ra trong wiki

Chủ đê nâng cao

đề án

Đoạn thẳng [C1]

Xem tại đây để biết cách tạo công thức Gauss cho các hàm trọng số của riêng bạn

Ví dụ

import numpy as np
import quadpy


def f[x]:
    return np.sin[x] - x


val, err = quadpy.quad[f, 0.0, 6.0]
0

Nửa không gian 1D với hàm trọng số exp[-r] [E1r]

Ví dụ

import numpy as np
import quadpy


def f[x]:
    return np.sin[x] - x


val, err = quadpy.quad[f, 0.0, 6.0]
1

Không gian 1D với hàm trọng số exp[-r2] [E1r2]

Ví dụ

import numpy as np
import quadpy


def f[x]:
    return np.sin[x] - x


val, err = quadpy.quad[f, 0.0, 6.0]
2

Vòng tròn [U2]

  • Krylov [1959, mức độ tùy ý]

Ví dụ

import numpy as np
import quadpy


def f[x]:
    return np.sin[x] - x


val, err = quadpy.quad[f, 0.0, 6.0]
0

Tam giác [T2]

Ngoài sơ đồ trọng tâm, đỉnh và bảy điểm cổ điển, chúng ta có

Ví dụ

import numpy as np
import quadpy


def f[x]:
    return np.sin[x] - x


val, err = quadpy.quad[f, 0.0, 6.0]
1

Đĩa [S2]

Ví dụ

import numpy as np
import quadpy


def f[x]:
    return np.sin[x] - x


val, err = quadpy.quad[f, 0.0, 6.0]
2

Tứ giác [C2]

Ví dụ

import numpy as np
import quadpy


def f[x]:
    return np.sin[x] - x


val, err = quadpy.quad[f, 0.0, 6.0]
3

Các điểm được chỉ định trong một mảng hình dạng [2, 2,. ] sao cho

scheme.points
scheme.weights
scheme.degree
scheme.source
scheme.test_tolerance

scheme.show[]
scheme.integrate[
    # ...
]
5 ở góc dưới bên trái,
scheme.points
scheme.weights
scheme.degree
scheme.source
scheme.test_tolerance

scheme.show[]
scheme.integrate[
    # ...
]
6 ở góc trên bên phải. Nếu c2 của bạn có các cạnh thẳng hàng với các trục tọa độ, bạn có thể sử dụng chức năng tiện lợi

Chủ Đề