Advertisement
Mbxvim

Untitled

May 9th, 2023
19
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.55 KB | None | 0 0
  1. #` Задаем функцию веса p(x) и ее пределы интегрирования`
  2. p := ln(x); a := 0; b := 1/2;
  3. #` Вычисляем моменты функции p(x)`
  4. M0 := int(p, x = a .. b); M1 := int(p * x, x = a .. b);
  5. M2 := int(p * x^2, x = a .. b); M3 := int(p * x^3, x = a .. b);
  6. #` Записываем систему уравнений на коэффициенты s и r`
  7. eq1 := M1 * r + M2 * s = -M0; eq2 := M2 * r + M3 * s = -M1;
  8. #` Решаем систему уравнений для s и r`
  9. sol := solve({eq1, eq2}, {s, r}) assuming r > 0 and s > 0;
  10. #` Находим корни многочлена omega(x) = (x - x1) (x - x2)`
  11. x1, x2 := solve(x^2 + sol[r] * x + sol[s], [x]);
  12. #` Определяем коэффициенты квадратурной формулы`
  13. A1, A2 := solve({x1 + x2 = b - a, x1 * x2 = -sol[r]}, {A1, A2});
  14. #` Выводим результаты` print("M0 = ", evalf(M0)); print("M1 = ",
  15. evalf(M1));
  16. print("M2 = ", evalf(M2));
  17. print("M3 = ", evalf(M3));
  18. print("s = ", evalf(sol[s]));
  19. print("r = ", evalf(sol[r]));
  20. print("x1 = ", evalf(x1));
  21. print("x2 = ", evalf(x2));
  22. print("A1 = ", evalf(A1));
  23. print("A2 = ", evalf(A2));
  24. #` Проверяем точность квадратурной формулы на многочленах степени не выше 3`
  25. error := int(p * x^3, x = a .. b) - evalf(A1 * (x1 - a)^3 * p(x1) + A2 * (x2 - a)^3 * p(x2));
  26. print("Error for polynomials of degree 3 or less: ",
  27. simplify(error));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement