Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2019, 21:05   #1
Solver`s
Пользователь
 
Регистрация: 03.12.2016
Сообщений: 25
По умолчанию Не работает функция solve. У меня есть два уравнения из которых мне нужно вывести значения А, ω, x_dot, alpha_dot.

Здравствуйте.
У меня есть два уравнения из которых мне нужно вывести значения А, ω, x_dot, alpha_dot.
Вот код:
Код:
%typeset_mode True
import numpy as np
import scipy
import matplotlib.pyplot as plt
import numpy.fft as fft
import matplotlib
import matplotlib.pyplot as plt1
import matplotlib.pyplot as plt2
from scipy import integrate, optimize, interpolate
from scipy.special import gamma
# y = [0..3]
# x=y[0]
# x_dot=y[1]
# alpha=y[2]
# alpha_dot=y[3]
%var angle1, x, x_dot,x1dot, x2dot, epsilon, A, Aa, alpha, alpha_dot, m1, m2, k1,g, l1, Ek, Ep, Lagran1, Lagran2
Ek = m2*((x_dot^2)+(2*x_dot*l1*cos(alpha)*alpha_dot)+(l1^2)*(alpha_dot^2)*((cos(alpha)**2)-(sin(alpha)**2)))/2
Ep = m2*g*(l1-l1*cos(alpha))+(k1*(x^2)/2)
L = Ek - Ep
Ldiff = L.diff(x_dot )
Ldiff2 = L.diff(alpha_dot)
t=var('t')
xdot_tmp = var ('X_Dot')
alphadot_tmp = var ('Alpha_Dot')
alpha_tmp = function ('Alpha')(t)# For substitution alpha
x_tmp = function ('X')(t) #For substitution x
angle1 = var ('theta')
Ldiff3 = Ldiff.subs([x_dot==x_tmp.diff(t), x==x_tmp ,alpha==alpha_tmp,alpha_dot==alpha_tmp.diff(t)]).diff(t)
Ldiff4 = Ldiff2.subs([x_dot==x_tmp.diff(t), x==x_tmp ,alpha==alpha_tmp,alpha_dot==alpha_tmp.diff(t)]).diff(t)
Lagran1 = Ldiff3-L.diff(x)-A*sin(angle1*t)
Lagran2= Ldiff4-L.diff(alpha)
print ('Lagran1')
Lagran1
print ('Lagran2')
Lagran2
omega =var ('omega') #For subs second derivative alpha. It is pendulum acceleration
Aa =var('A') #For subs second derivative x. It is trolley acceleration
eq1=Lagran1.subs([x_tmp.diff(t)==x_dot,x_tmp==x,alpha_tmp.diff(t)==alpha_dot,alpha_tmp==alpha, alpha_tmp.diff(t).diff(t)==omega, x_tmp.diff(t).diff(t)==Aa])
print ('eq1')
eq1
eq2=Lagran2.subs([x_tmp.diff(t)==x_dot,x_tmp==x,alpha_tmp.diff(t)==alpha_dot,alpha_tmp==alpha, alpha_tmp.diff(t).diff(t)==omega, x_tmp.diff(t).diff(t)==Aa])
print ('eq2')
eq2
solve([ eq1,eq2  ],[Aa,omega ])
#x_dot is trolley velocity
#alpha_dot is pendulum velocity
solve([ eq1,eq2  ],[x_dot,alpha_dot ])
Полазив в интернете я решил, что проще всего будет сделать это при помощи функции "solve". Значения А, ω вывелись без проблем, а вот при выводе x_dot, alpha_dot появляются только пустые скобки.
Что я сделал неверно и как исправить код так, чтобы значения выводились?
Заранее спасибо за ответы.
Solver`s вне форума Ответить с цитированием
Старый 22.05.2019, 23:09   #2
Solver`s
Пользователь
 
Регистрация: 03.12.2016
Сообщений: 25
По умолчанию

Вопрос снят.
Solver`s вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно найти количество предложений, в которых есть одинакове слова. KEX_:) Общие вопросы C/C++ 0 26.11.2017 23:09
из таблицы сделать выборку тех монет, которых у меня нет? то есть небольшая сводная таблица, где будет постоянно актуальная информация uq_jigsaw Microsoft Office Excel 5 06.02.2017 22:36
Sendmail работает, функция mail() работает, но есть проблема. PavelNAndreev PHP 8 27.01.2014 12:45
Вывести на экран предложения, в которых есть хотя бы одно слово состоящее из 7 букв Shonny94 Помощь студентам 0 18.02.2013 17:40
Вывести в один ListBox шрифты которые у меня есть в Windows, а во второй размеры шрифтов Nikita1987 WPF, UWP, WinRT, XAML 2 08.05.2011 03:20