首页 > 解决方案 > 在包含多个变量的方程列表上使用 Sympy 求解器

问题描述

我需要求解一个列表(因为每个变量都有两个以正确顺序压缩的值),exmax并且假设所有这些变量都是其他变量的某种组合。eymaxexymaxNxmax

我的问题是类型作为“有限集”返回,因此它不会让我正确迭代。

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”确实不能很好地工作。

标签: pythonnumpyvariablessympysolver

解决方案


推荐阅读