Найти - Пользователи
Полная версия: график параболы
Начало » GUI » график параболы
1
Nastya12345
Помогите, пожалуйста…… как построить график функции y=x^2…. так, чтоб программа сама высчитывала координаты точек…..очень-очень нужно завтра
FishHook
# -*- coding: utf-8 -*-
from pylab import *
subplot(111, axisbg='darkslategray')
t = arange(-20.0, 20.0, 0.01)
s = t**2
plot(t, s, 'y')
xlabel('time (s)', color='r')
ylabel('voltage (mV)', color='0.5') # grayscale color
title('About as silly as it gets, folks', color='#afeeee')
show()
doza_and
u"""
this module extends matplotlib plot to plot functions
"""
import numpy as np
from pylab import plot,show
def PlotPointsInner(f,mi,ma,fmi,fma,globalMin,globalMax,epsilon=0.01):
    u"""выбор точек для отрисовки функции выбираем точки так, чтобы получить погрешность меньше заданной"""
    x2=(mi+ma)/2
    fnew=f(x2)
    if fnew<globalMin:
        globalMin=fnew
    if fnew>globalMax:
        globalMax=fnew
    delta=globalMax-globalMin
    if abs((fmi+fma)/2-fnew)>(delta*epsilon):
        (a,b)=PlotPointsInner(f,mi,x2,fmi,fnew,globalMin,globalMax,epsilon)
        (c,d)=PlotPointsInner(f,x2,ma,fnew,fma,globalMin,globalMax,epsilon)
        return (a+c,b+d)
    else:
        return ([mi,x2,ma],[fmi,fnew,fma])
def PlotPoints(f,mi,ma,epsilon=0.01):
    u"""Из функции и области определения делаем наборы точек для отрисовки"""
    fmi=f(mi)
    fma=f(ma)
    globalMin=min(fmi,fma)
    globalMax=max(fmi,fma)
    if fmi==fma:
        fma+=max(1e-6,(1e-6*fma))
    (a,b)=PlotPointsInner(f,mi,ma,fmi,fma,globalMin,globalMax,epsilon)
    return (np.array(a),np.array(b))
#(x,y)=PlotPoints(np.sin,0.,5.)
def fplot(*args,**kvargs):
    if "range" in kvargs:
        rg=map(float,kvargs["range"])
        del kvargs["range"]
    if "eps" in kvargs:
        eps=kvargs["eps"]
        del kvargs["eps"]
    else:
        eps=0.01
    atr=[]
    for i in args:
        if hasattr(i,"__call__"):
            atr.extend(PlotPoints(i,rg[0],rg[1],eps))
        else:
            atr.append(i)
    atr=tuple(atr)
    plot(*atr,**kvargs)

Этот fpot как раз вычисляет точки сам и отрисовывает сам. Но надо еще допиливать. Ограничить глубину рекурсии например…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB