Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import matplotlib.pyplot as plt
- import numpy as np
- from sympy import *
- p=Symbol('p')
- m=sin(p)**2+cos(2*p)**2
- def tadam(h): #Первое задание. написали функцию для вычисления
- b=sin(h)**2+cos(2*h)**2
- return b
- t=float(input('Введите аргумент: '))
- print(f'Наше значение функции в точке х = {t} равно {tadam(t)}')
- n=1
- summ=sin(0)**2+cos(2*0)**2
- def f(x): #2-3 Задание. Пишем функцию и считаем приближ.значение и количество производных для построения ряда тейлора нашего аргумента.
- global summ
- global n
- dx=diff(m,p,n) #Берем производную n-го порядка
- ddx=lambdify(p,dx)
- summ+=(ddx(0)*(x**n))/factorial(n)
- return summ
- while True: # В цикле вызываем нашу функцию
- if abs(summ-(sin(t)**2+cos(2*t)**2))<=10**-4:
- break
- f(t)
- n+=1
- print(f'приближенное значение нашей функции = {summ}')
- print(f'Если x={t}, то количество производных для ряда Тейлора = {n}')
- x=Symbol('x')
- sincos = (sin(x)**2+cos(2*x)**2).series(x,0,n).removeO()
- sincosfunc = lambdify(x, sincos)
- x_pampam=np.linspace(-1.8,1.8,200)
- plt.plot(x_pampam, [sincosfunc(i) for i in x_pampam],color='red',linestyle='--',label=f'Приближенная функция из {n} членов')
- x=np.linspace(-5,5,200)
- y=np.sin(x)**2+np.cos(2*x)**2
- plt.plot(x,y,color='c',alpha=0.5,label='y=sin(x)^22+cos(2*x)^2')
- plt.grid(color='lightsalmon')
- plt.legend(loc='lower left')
- plt.title(f'Графики')
- plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement