#python #graphics #computer-vision #computational-geometry #numerical-methods
Вопрос:
Есть ли способ численно вычислить энергию изгиба 2d-металлического листа. Двумерный металлический лист лежит на равномерно распределенной сетке, поэтому в python это будет задано матрицей размеров nxnx2, где n-количество строк и столбцов в сетке. Я хотел бы вычислить энергию изгиба этого двумерного металлического листа в различных конфигурациях. Энергия изгиба двумерного металлического листа определяется
Я знаю, что для сплайна тонкой пластины существует решение замкнутой формы, но как я могу просто численно реализовать эту составляющую энергии изгиба. Ссылка на статью, в которой объясняется, как это вычислить, также приемлема.
Ответ №1:
Допустим, ваша функция f
определяется NxM
сеткой значений. Тогда очень естественным способом оценки его производных являются конечные разности. Частичные числа второго порядка можно аппроксимировать следующими выражениями:
fxx[i,j] = f[i 1,j] - 2*f[i,j] f[i-1,j]
fxy[i,j] = f[i 1,j 1] - f[i 1,j-1] - f[i-1,j 1] f[i-1,j-1]
fyy[i,j] = f[i,j 1] - 2*f[i,j] f[i,j-1]
откуда i
и j
откуда [0,N-1]
и [0,M-1]
соответственно.
Интеграция, с другой стороны, может быть реализована путем суммирования по всей сетке.
Комментарии:
1. В моем случае сетка деформации задается nxnx2,так что это смещение в направлении x и y точки i, j в сетке nxn. Поэтому, когда я вычисляю fxx и fyy, это отдельная величина как для смещения x, так и для y. Таким образом, я получаю два значения fxx, одно для смещения x и одно для смещения y, я думаю. Чтобы вычислить объединенный fxx, я просто делаю квадратный корень из суммы. Я не понимаю эту часть
2. Я думаю,что f(x, y) — это векторнозначная функция со смещениями x и y в местах сетки. Я думаю, что это важно при вычислениях, но я не знаю, как это сделать