0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 12

Траектория лыжника

31.05.2010, 21:42. Показов 1874. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите пожалуйста разобраться в ошибках. Я пишу программу которая бы моделировала траекторию скольжения лыжника по заданной функции, случай когда лыжник может оторваться от поверхности и лететь не рассматриваем. Программу надо написать с использованием классов.
Класс:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#!/usr/bin/python
# -*- coding:utf8 -*-
 
import numpy as num
import math
 
 
class klass:
    def __init__(self,x,y,vx,vy,k,tr,m):
        self.x=float(x)
        self.y=float(y)
        self.vx=float(vx)
        self.vy=float(vy)
        self.k=float(k)
        self.tr=float(tr)
        self.m=float(m)
        self.t=0
        self.X=[]
        self.Y=[]
        self.dv=True
 
        def f(x):
            return -x+10   #функция рельефа
        
    def K(z):  
        return pow(((((f(z+2*0.01)-2*f(z+0.01)+f(z))/0.0001)/(1+pow(f(z+0.01)-f(z)/0.01,2))),1.5)) #функция обратная радиусу кривизны
              
        def der(z):
            return (f(z+0.01)-f(z))/0.01 #функция первой производной, для расчета угла
 
        def shift(self,dt,f): 
            if K(self.x)>0:
            self.N=-self.m*((self.vx*self.vx+self.vy*self.vy)*K(self.x)-9.8*math.cos(math.pi/2-math.atan(der(self.x))))
            self.ax=(self.N*math.cos(math.pi/2-math.atan(der(self.x)))-self.tr*self.N*math.sin(math.pi/2-math.atan(der(self.x)))-self.k*self.vx)/self.m
            self.ay=(self.N*math.cos(math.pi/2-math.atan(der(self.x)))*tr+math.sin(math.pi/2-math.atan(der(self.x)))+self.k*self.vy-self.m*9.8)/self.m
            self.vx=self.vx+self.ax*dt
            self.vy=self.vy+self.ay*dt
                self.x=self.vx*dt+self.ax*dt*dt/2
            self.y=self.vy*dt+self.ay*dt*dt/2       
        elif K(self.x)<0:
                self.N=self.m*((self.vx*self.vx+self.vy*self.vy)*K(self.x)+9.8*math.sin(math.atan(der(self.x))))
            self.ax=(self.N*math.cos(math.pi/2-math.atan(der(self.x)))-self.N*self.tr*math.sin(math.pi/2-math.atan(der(self.x)))-self.k*self.vx)/self.m
            self.ay=(self.N*math.sin(math.pi/2-math.atan(der(self.x)))-self.m*9.8+self.tr*self.N*math.cos(math.pi/2-math.atan(der(self.x)))+self.vy*self.k)/self.m
            self.vx=self.vx+self.ax*dt
                self.vy=self.vy+self.ay*dt
            self.x=self.vx*dt+self.ax*dt*dt/2
            self.y=self.vy*dt+self.ay*dt*dt/2
            elif K(self.x)==0:
                self.N=9.8*self.m*math.sin(math.pi/2-math.atan(der(self.x)))
            self.ax=(self.N*math.cos(math.pi/2-math.atan(der(self.x)))-self.N*self.tr*math.sin(math.pi/2-math.atan(der(self.x)))-self.k*self.vx)/self.m
            self.ay=(self.N*math.sin(math.pi/2-math.atan(der(self.x)))+self.tr*self.N*math.cos(math.pi/2-math.atan(der(self.x)))-self.m*9.8+self.vy*self.k)/self.m
            self.vx=self.vx+self.ax*dt
                self.vy=self.vy+self.ay*dt
            self.x=self.vx*dt+self.ax*dt*dt/2
            self.y=self.vy*dt+self.ay*dt*dt/2
                
            if self.y<=0:
            self.dv=False
        else: 
            self.X.append(self.x)
            self.Y.append(self.y)
            self.t=self.t+dt
 
Сама программа:
#!usr/bin/python
# -*- coding:utf8 -*-
import math
import numpy as num
import matplotlib.pyplot as pyp
from klass import *
 
def f(x):
 return -x+10
    
dt=0.01
ski=klass(0,10,2,-4,0.01,0.1,70)
t=0
while ski.dv:
 ski.shift(dt,f)
print ski.X
print
print ski.Y
pyp.figure(1)
pyp.subplot(111) 
pyp.plot(ski.X,ski.Y,'black')
pyp.show()
 
На данный момент программа выдает ошибку:
 if K(self.x)>0:
NameError: global name 'K' is not defined
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.05.2010, 21:42
Ответы с готовыми решениями:

Траектория прыжка
Рассмотрим пример иллюстрирующий математическую модель описывающий траекторию кошачьего прыжка. Из второго закона Ньютона, предполагая...

Определить пробег лыжника за n-й день тренировок
Начав тренировки, лыжник в первый день пробежал 10 километров. Каждый следующий день он увеличивал пробег на 10% от пробега предыдущего...

Определить в какой день суммарный пробег лыжника за все дни превысит 100 км.
Написать программу.Начав тренировки, лыжник в первый день пробежал 10 км. Каждый следующий день он увеличивал длину пробега на 10% от...

1
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
01.06.2010, 03:14
Цитата Сообщение от shishkin
Python
1
NameError: global name 'K' is not defined
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
>>> class A():
...     def prn(self, x):
...         print(x)
...     def prn3(self):
...         if self.i == 3:
...             for i in (1, 2, 3):
...                 self.prn(self.i * i)
...
>>> obj = A()
>>> obj.i = 3
>>> obj.prn(1)
1
>>> obj.prn3()
3
6
9
>>> obj.i = 2
>>> obj.prn3()
>>>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.06.2010, 03:14
Помогаю со студенческими работами здесь

Про лыжника
Начав тренировки, лыжник в первый день пробегал 10 км. Каждый следующий день он увеличивал длину пробега на 10% от предыдущего дня....

Про лыжника
Люди помогите решить задачьку по паскалю :Лыжник в первый день прошел 10КМ.КАждый следующий день он проходил на 10% больше, чем в первый....

Задача про лыжника
Спортсмен-лыжник начал тренировки, пробежав в первый день 10 км. Каждый следующий день он увеличивал длину пробега на P процентов от...

Анимация лыжника из картинок
Здравствуйте! Мне надо сделать анимацию из картинок, как лыжник прыгает с трамплина. Изображения у меня есть, но я не понимаю как их...

Суммарный пробег лыжника
1.2. Циклические программы. Спортсмен-лыжник начал тренировки, пробежав в первый день 10 км. Каждый следующий день он увеличивал длину...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru