Используйте Sympy solver для списка уравнений, содержащих несколько переменных

#python #numpy #variables #sympy #solver

#python #numpy #переменные #sympy #решатель

Вопрос:

Мне нужно решить для списка (потому что для каждой переменной есть два значения, которые заархивированы в правильном порядке) из exmax , eymax , exymax и Nxmax учитывая, что все эти переменные представляют собой некоторую комбинацию других.

У меня проблема в том, что тип возвращается как «конечный набор», и в результате это не позволит мне выполнить итерацию должным образом.

 import math 
import numpy as np 
from astropy.table import QTable, Table, Column
from collections import Counter
import operator

from sympy import *
exmax= symbols('exmax')
eymax= symbols('eymax')
exymax= symbols('exymax')
Nxmax=symbols('Nxmax')

Stiffnessofplies=list(1,1) #This isn't the actual value, but it is important to have a len of two #here for later on

Nxmax=[78.4613527541947*exmax   8.06201746514537e-15*exymax   4.07395485454472*eymax,
 69.4081197440953*exmax   1.35798495151491*eymax]

exmax= [{(-1.0275144618526e-16*exymax - 0.0519230769230769*eymax,)},
 {(-0.0195652173913043*eymax,)}]

eymax = [{(-0.0284210526315789*exmax   8.11515424209734e-19*exymax,)},
 {(-0.299999999999999*exmax,)}]

exymax = [{(-7.78938885521292e-17*exmax   1.12391245013323e-18*eymax,)}, {(0,)}]

exmax2=[]
for i in emax:
    for j in i:
        exmax2.append(j)
eymax2=[]
for i in eymax:
    for j in i:
        eymax2.append(j)
exymax2=[]
for i in exymax:
    for j in i:
        exymax2.append(j)
 

Я выполнил эти последние три уравнения, чтобы попытаться сгладить все, чтобы сделать его итеративным. Вот другие вещи, которые я пробовал:

 #Pleasework=[]
#for i in range(0,len(Stiffnessofplies)):
#    linsolve([exmax2[i]], [eymax2[i]], [exymax2[i]], [Nxmax[i]], (exmax, eymax, exymax,Nxmax))



#System= exmax2[0],eymax2[0],exymax2[0]
#linsolve(System, exmax,eymax,exymax,Nxmax)
#Masterlist=list(zip(exmax,eymax,exymax,Nxmax))
 

Я думаю, что одна из моих главных проблем заключается в том, что тип, который я получаю обратно, «finiteset» действительно плохо работает при попытке повторить список для обоих значений в списке.

Комментарии:

1. Вероятно, вы захотите использовать solve вместо linsolve .

2. Итак, насколько я понимаю, вы пытаетесь найти решения n разных тройных одновременных уравнений. Если это так, то почему у вас есть массив наборов кортежей? Возможно, ввод ваших уравнений, которые вы хотите решить на английском или LaTeX, даст вам лучший ответ.