python - 我可以在 python 中用 fsolve 解决非线性特征值问题吗?
问题描述
我有一个非线性类型的特征值问题
c_0 + lambda*c_1 + lambda^2*c_2 + c_3*lambda^3=0
我一直在尝试对系数 c 的矩阵求逆,但它是一个奇异矩阵,它会创建复杂的值。有人告诉我我可以用函数 fsolve() 来解决它,我正在寻找一个在 python 中像 matlab 中的 polyeig 一样工作的函数。“c”系数是每一个方阵。这个想法是在操作结束时接收特征值和特征向量
编辑
c1=np.zeros([Np_t,Np_t])
c2=np.zeros([Np_t,Np_t])
c3=np.zeros([Np_t,Np_t])
for i in range(Np_t):
c0[i][:] = d2[i][:]*w + d1[i][:]*w/r[i] + (rho_0*M_o**2*w**3)*Ii[i][:] - (m**2/r[i]**2)*w*Ii[i][:]
c1[i][:] = -rho_0*(M_o**2)*2*w**2*u_z0*Ii[i][:] - d2[i][:]*u_z0 - d1[i][:]*u_z0/r[i] - u_z0*rho_0*M_o**2*w**2*Ii[i][:] + d1[i][:]*2*du[i] + (m**2/r[i]**2)*u_z0*Ii[i][:]
c2[i][:] = w*rho_0*M_o**2*u_z0**2*Ii[i][:] - w*Ii[i][:] + rho_0*M_o**2*2*w*u_z0**2*Ii[i][:]
c3[i][:] = rho_0*M_o**2*u_z0**3*Ii[i][:] + u_z0*Ii[i][:]
#%% Conditions aux limites
c0[0][:]=0
c1[0][:]=0
c2[0][:]=0
c3[0][:]=0
c0[Np_t-1][:]=0
c1[Np_t-1][:]=0
c2[Np_t-1][:]=0
c3[Np_t-1][:]=0
#conditions à rmax
c0[Np_t-1][Np_t-3]= (dr[Np_t-1]/dr[Np_t-2]*(dr[Np_t-1]+dr[Np_t-2]))
c0[Np_t-1][Np_t-2]= -(dr[Np_t-1]+dr[Np_t-2])/(dr[Np_t-2]*dr[Np_t-1])
c0[Np_t-1][Np_t-1]= (dr[Np_t-1]+dr[Np_t-2])/(dr[Np_t-2]*dr[Np_t-1]) - (dr[Np_t-1]/(dr[Np_t-2]*(dr[Np_t-1]+dr[Np_t-2])))
if m == 0:
c0[0][0] = (-3/2)/dr[1]
c0[0][1] = 2/dr[1]
c0[0][2] = (-1/2)/dr[1]
else:
c0[0][0] = 1
c0[0][0] = 0
c0[0][0] = 0
#from scipy.optimize import fsolve
#[X,Y] = sc.optimize.fsolve(c0,c1,c2,c3)
#A11 = np.zeros([Np_t,Np_t])
#A12 = Ii
#A13 = np.zeros([Np_t,Np_t])
#A21 = np.zeros([Np_t,Np_t])
#A22 = np.zeros([Np_t,Np_t])
#A23 = Ii
#A31 = np.nan_to_num(-np.linalg.inv(c3)*c0)
#A32 = np.nan_to_num(-np.linalg.inv(c3)/c1)
#A33 = np.nan_to_num(-np.linalg.inv(c3)/c2)
#
#A = ([[A11,A12,A13],[A21,A22,A23],[A31,A32,A33]])
#
#
#[vp,vcp]=np.linalg.eig(A)
#
#real = np.real(vcp)
#img = np.imag(vcp)````
解决方案
推荐阅读
- discord - 我想将我的不和谐机器人状态从播放更改为观看
- windows - 为什么系统找不到指定的路径?
- php - CSV 批量上传以在成功上传后完成操作
- postgresql - 如何为 crunchy data postgres 运算符查看/安装 pg_activity?
- google-cloud-platform - 使用 Google Cloud Storage 上的视频文件作为 Microsoft 视频索引器的输入时出现问题
- git - 默认 git log 缩写格式长度
- lightweight-charts - Tradingview轻量级图表:如何增加点数?
- reactjs - 如何处理 AppStack 4.0 版( headerLeft )中的后退按钮功能?
- android - Flutter 依赖错误 (flutter_svg: ^0.19.2+1)
- css - 使用 css 属性作为资产的基本 url