通过python中的另一个脚本创建新变量

2024-09-29 21:55:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在想如何做到这一点

我有两个python脚本,主要的一个调用另一个并传递3个变量,然后这个脚本(只有一个函数)返回一个长度为4的元组,最后我通过第一个调用这个脚本

我的问题是,有没有什么方法可以让元组创建一个新变量,例如在第一个脚本中创建一个矩阵或各种向量,从而避免反复调用函数

脚本1

import numpy as np
import scipy.integrate as integrate
import matplotlib.pyplot  as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm

from Funcion_gamma import Fgamma

import time

start_time = time.time()

"Aluminio"

E=7e10       #Modulo de Young
v=0.33       #Modulo de Poison
G=2.63e10    #Modulo de cizalladura
h=0.00286    #Anchura de la placa
a=0.85       #Lado 1 de la placa
b=0.65       #Lado 2 de la placa
rho=2703.6   #Densidad del material
Kmuelle=3


"M y N"

m=7
n=m

Fgamma(Kmuelle,a,m)

脚本2

import sympy as sp
import numpy as np

def Fgamma(KK,aa,M):

    'Definicion de las variables simbolicas'

    g, a, A, C, D, K, x = sp.symbols("g a A C D K x")

    'Funcion Gartner y sus derivadas' 

    X=(A*sp.cos(g*x/a))+(sp.sin(g*x/a))+(C*sp.exp(-g*x/a))+(D*sp.exp(-g*(a-x)/a))
    dx1=sp.diff(X,x,1)
    dx2=sp.diff(X,x,2)

    'Ecuaciones a resolver'

    eq1= sp.Eq(X.subs(x,0),0)
    eq2= sp.Eq(dx2.subs(x,0)/dx1.subs(x,0),K)
    eq3= sp.Eq(X.subs(x,a),0)
    eq4= sp.Eq(dx2.subs(x,a)/dx1.subs(x,a),-K)

    'Resolucion de las ecuaciones'

    D1=sp.solve(eq1,D)
    eq33 = eq3.subs(D, D1[0])
    C33=sp.solve(eq33,C)
    D11=D1[0].subs(C,C33[0])
    eq22=eq2.subs([(C, C33[0]),(D,D11)]) 
    A22=sp.solve(eq22,A)

    eq44=eq4.subs([(C,C33[0]),(D,D11)])
    A44=sp.solve(eq44,A)

    'Obtencion de A'

    AF=A22[0]-A44[0]
    AFF=sp.sympify(AF.subs([(K,KK),(a,aa)]))

    'Calculo de las raices de gamma'

    nn=np.linspace(0,M,num=M,endpoint=False,dtype='int')
    gamma=np.zeros(M)
    Afinal=np.zeros(M)
    Cfinal=np.zeros(M)
    Dfinal=np.zeros(M)    


    for jj in nn:
        gamma[jj]=sp.nsolve(sp.Eq(AFF,0),(3+(jj*np.pi)))
        Afinal[jj]=AFF.subs(g,gamma[jj])
        Cfinal[jj]=C33[0].subs([(A,Afinal[jj]),(a,aa),(g,gamma[jj])])
        Dfinal[jj]=D11.subs([(A,Afinal[jj]),(a,aa),(g,gamma[jj])])
    print gamma
    return gamma,Afinal,Cfinal,Dfinal 

Tags: import脚本timeasnpdespaa

热门问题