Почему мой расчет конечно-разностных весов для рядов Тейлора дает неверные результаты?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему мой расчет конечно-разностных весов для рядов Тейлора дает неверные результаты?

Сообщение Anonymous »

Я пытаюсь вычислить веса конечно-разностной аппроксимации первой производной f'(x)f'(x)f'(x), используя разложение в ряд Тейлора. Я нахожу веса a,b,c,d,ea, b, c, d, ea,b,c,d,e такие, что:
af(x+2Δx )+bf(x+Δx)+cf(x)+df(x−Δx)+ef(x−2Δx)a f(x+2\Delta x) + b f(x+\Delta x) + c f(x) + d f(x-\Delta x) + e f(x-2\Delta x)af(x+2Δx)+bf(x+Δx)+cf(x)+df(x−Δx)+ef(x−2Δx)
приближает f'(x)f'(x)f'(x). Вот что я сделал:
  • Я использовал разложение в ряд Тейлора для f(x±kΔx)f(x \pm k\Delta x)f (x±kΔx), где k=1,2k = 1, 2k=1,2.
  • Я построил систему линейных уравнений обеспечить соблюдение следующих условий:
    • Коэффициенты f(x): a+b+c+d+e=0
    • Коэффициенты f′(x): 2a+b−d−2e=1
    • Коэффициенты f′′(x): 4a+b+ d+4e=0
    • Коэффициенты f(3)(x): 8a+b−d−8e=0
    • Коэффициенты из f(4)(x): 16a+b+d+16e=0
  • Я реализовал матричное уравнение A⋅z=bA \cdot z = bA⋅z=b в Python:

    Код: Выделить всё

    import numpy as np
    
    A = np.array([
    [1, 1, 1, 1, 1],      # Coefficients of f(x)
    [2, 1, 0, -1, -2],    # Coefficients of f'(x)
    [4, 1, 0, 1, 4],      # Coefficients of f''(x)
    [8, 1, 0, -1, 8],     # Coefficients of f'''(x)
    [16, 1, 0, 1, 16]     # Coefficients of f''''(x)
    ])
    
    b = np.array([0, 1, 0, 0, 0])  # Targeting the first derivative
    
    z = np.linalg.solve(A, b)
    print(z)
    
    
  • Проблема:
    Я получаю следующий результат:

    Код: Выделить всё

    [0.25,0,-0,0,-0.25]
    
    Однако ожидаемые веса первой производной должны быть примерно такими:
  • Код: Выделить всё

    [-1/12,2/3,0,-2/3,1/12]
    
  • Что я пробовал:

    Проверено дважды коэффициенты в матрице A, чтобы убедиться, что они соответствуют разложению в ряд Тейлора.
  • Проверено, что вектор правой части b=[0,1 ,0,0,0] корректно аппроксимирует f′(x).
Несмотря на это, веса неверны. Я что-то упустил в настройке матрицы или реализации Python?

[*]Ожидаемое поведение:
I хотим, чтобы решение соответствовало теоретическим весам для центральной конечно-разностной аппроксимации первой производной f'(x) с использованием пяти точек.



Подробнее здесь: https://stackoverflow.com/questions/793 ... ve-incorre
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»