Найти - Пользователи
Полная версия: моделирование на python!!! нужна помощь
Начало » Центр помощи » моделирование на python!!! нужна помощь
1 2 3 4 5 6 7
Isem
По всей видимости нужно все-таки подставить небольшую программку на питоне для численного решения :)
alexx11
Isem Дак всю работу ТС на себя никто не возьмёт. Я лишь предоставил аналитическое решение, с которым можно сверится при реализации программки, и следствия вытекающие из решения.
vell
в python есть класс векторов ?
Isem
Скачайте и установите библиотеку numpy для этого.
http://numpy.scipy.org/
vell
написал программу которая расчитывает координаты х и у (х и у масивы ) как теперь графйик построить??
Isem
Скачайте и установите библиотеку matplotlib для этого.
http://matplotlib.sourceforge.net/
doza_and
Посмотрите пример я ведь вам и ссылку дал и текст (2011-01-13 20:49:57) где и интегратор работает и картинка строится.
в ivp++ сделайте у себя также
vell
ivp там представленно много методов . взял рк4 ( рунге кутта) пишит не правльный синтаксис в чём дело ?
vell
Народ вот написал программу
from numpy import *
from matplotlib import *
import matplotlib.pyplot as plt

v=120
a=45
m=1

vx0=v*math.cos(a)
vy0=v*math.sin(a)
x0=0
y0=0
k1=0.1
k2=0.3
dt=0.001
g=9.8
x=[x0]
vx=[vx0]
vy=[vy0]
y=[y0]
i=0

while y[i]>=0:
z=vx[i]-(k1/m*vx[i]+(k2/m)*vx[i]**2)*dt
vx.append(z)
f=vy[i]-(k1/m*vy[i]+(k2/m)*vy[i]**2+g)*dt
vy.append(f)
d=x[i]+vx[i]*dt
x.append(d)
r=y[i]+vy[i]*dt
y.append(r)
i=i+1

w=max(y)

print(x,y)
plt.plot(x,y)
plt.xlabel('x')
plt.ylabel('y')
o=x[i]
plt.axis([0, x[i]+2, 0, w+2])


plt.show()
как теперь добавить ввод данных(масса. угол, коэффицент пружины, коэфиценты сопративления среды, длинны пружины в свободном состоянии и в сжатом. ? и хотелось бы чтоб всё было в одном окне и ввод и сам график
Буду признателен за помощь
doza_and
Красивый ввод можно сделать но это сложнее - вы ведь оконное приложение тогда получите.
посмотрите например здесь: http://matplotlib.sourceforge.net/examples/user_interfaces/embedding_in_wx2.html
но думаю игра не стоит свеч.

Мне обычно хватает pyscripter поскольку и текст программы доступен и график одновременно.

Правильно сделано или нет - не понятно у вас схема решения не отделена от оператора - кто его поймет что у вас получилось. Если схема отдельно - можно решить простые тестовые задачи для которых известно решение. У вас непонятно где что.

Скорее всего код сделан неправильно. Поскольку если положить в вашем коде k1=k2=0 получается парабола какая-то - а должна быть прямая по моему.

“не правльный синтаксис в чём дело?” - это наверное у вас питон 3.x надо print a,b,c ->print(a.b.c) заменить или еще что-нибудь в этом духе. Я бы посмотрел, но я не ставил пока третий питон.

В случае ошибок, обычно принято присылать то, что сказал интерпретатор. Тогда мы могли-бы понять чем он недоволен.

Я вам посоветовал-бы всетаки выделить расчет производных в функцию. Взять схему попроще - явный эйлер и тогда все будет ок.
x_{k+1}=x_{k}+dt*f(t,x_{k})

Выражаю вам мое глубокое уважение. Ваше упорство в решении этой задачи воистину безгранично!
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