Advertisement
dtroonn

Untitled

Dec 6th, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.72 KB | None | 0 0
  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. from sympy import *
  4. p=Symbol('p')
  5. m=sin(p)**2+cos(2*p)**2
  6. def tadam(h): #Первое задание. написали функцию для вычисления
  7.     b=sin(h)**2+cos(2*h)**2
  8.     return b
  9. t=float(input('Введите аргумент: '))
  10. print(f'Наше значение функции в точке х = {t} равно {tadam(t)}')
  11. n=1
  12. summ=sin(0)**2+cos(2*0)**2
  13. def f(x):    #2-3 Задание. Пишем функцию и считаем приближ.значение и количество производных для построения ряда тейлора нашего аргумента.
  14.     global summ
  15.     global n
  16.     dx=diff(m,p,n) #Берем производную n-го порядка
  17.     ddx=lambdify(p,dx)    
  18.     summ+=(ddx(0)*(x**n))/factorial(n)
  19.     return summ
  20. while True: # В цикле вызываем нашу функцию
  21.     if abs(summ-(sin(t)**2+cos(2*t)**2))<=10**-4:
  22.         break
  23.     f(t)
  24.     n+=1
  25. print(f'приближенное значение нашей функции = {summ}')
  26. print(f'Если x={t}, то количество производных для ряда Тейлора = {n}')
  27. x=Symbol('x')
  28. sincos = (sin(x)**2+cos(2*x)**2).series(x,0,n).removeO()
  29. sincosfunc = lambdify(x, sincos)
  30. x_pampam=np.linspace(-1.8,1.8,200)
  31. plt.plot(x_pampam, [sincosfunc(i) for i in x_pampam],color='red',linestyle='--',label=f'Приближенная функция из {n} членов')
  32. x=np.linspace(-5,5,200)
  33. y=np.sin(x)**2+np.cos(2*x)**2
  34. plt.plot(x,y,color='c',alpha=0.5,label='y=sin(x)^22+cos(2*x)^2')
  35. plt.grid(color='lightsalmon')
  36. plt.legend(loc='lower left')
  37. plt.title(f'Графики')
  38. plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement