哪位可以用python语言写一下这个方程组怎么解

哪位可以用python语言写一下这个方程组怎么解,第1张

先指出一个错误:你list1中只有一个元素,应该用list1[0]取出;

这个问题,我也一直在找解决办法,苦搜无果,自己想到了增加方程变量的方法来解决:新增变量-表达式=0,把这个方程同之前你得到的结果组成三元一次方程组,得出新增变量的解即可。

z=Symbol('z')

result1=solve([z-list1[0],x-result[x],y-result[y]],[x,y,z])

result1[z]就是你要的结果,拿走不谢~~

如果一元方程的解(x)带回表达式,思路一样,只是注意一元方程的解是存放在列表里(假设为result[]),而不是字典,列表中的第一个元素为实数解,所以代码变为:

y=Symbol('y')

result1=solve([y-list1[0],x-result[0],[x,y])

result1[y]即是。

给你串代码,用来求LQR的

import numpy as np

from scipy import c_

def lqr(A,B,Q,R):

dim = Ashape[0]

H1 = nphstack((A,-B@nplinalgsolve(R,BT)))

H2 = nphstack((-Q,-AT))

H = npvstack((H1,H2))

[e,g] = nplinalgeig(H)

i_p = npwhere(e>0)[0]

i = npargsort(e[i_p])

i_p = i_p[i[::-1]]

i_m = npwhere(e<=0)[0]

i = npargsort(e[i_m])

i_m = i_m[i]

i = nphstack((i_m,i_p))

e = e[i]

g = g[:,i]

g11 = g[0:dim,0:dim]

g21 = g[dim:2dim,0:dim]

g12 = g[0:dim,dim:2dim]

g22 = g[dim:2dim,dim:2dim]

P = nplinalgsolve(g11T,g21T)real

K = nplinalgsolve(R,BT)@P

return [K,P]

if __name__ == '__main__':

from scipy import stats

A = statsnormrvs(size = [5,5])

B = statsnormrvs(size = [5,5])

Q = statsnormrvs(size = [10,5])

Q = QT@Q

R = statsnormrvs(size = [10,5])

R = RT@R

[K,P] = lqr(A,B,Q,R)

import scipyoptimize

import sympy

print(scipyoptimizefsolve(lambda x: x2 + 2x + 1, 0))

print(sympysolve('x2 + 2x + 1'))

spicyoptimizefsolve求数值解,需要给定初值,必要时需要选定求解器(不过解个二元一次而已无所谓了)。

sympysolve求解析解。当然还有更细致的玩法。

当然其实一元二次方程这种有求根公式的玩意……直接套求根公式就行……

二次方程,先计算判别式,判别式小于0 的,说明方程有复数根,那么就用Complex类型来表示就行了,Complex类型是python的内置类型。

1+2i 就写成

x=complex(1,2)

有很多大学生问我,学习python有什么用呢?我说:你至少可以用来解微分方程,如下面的例子,就是解决微分方程:

y"+ay'+by=0 

代码如下:

[python] view plain copy

#y"+ay'+by=0

from scipyintegrate import odeint

from pylab import 

def deriv(y,t):        # 返回值是y和y的导数组成的数组

a = -20

b = -01

return array([ y[1], ay[0]+by[1] ])

time = linspace(00,500,1000)

yinit = array([00005,02])     # 初值

y = odeint(deriv,yinit,time)

figure()

plot(time,y[:,0],label='y')    #y[:,0]即返回值的第一列,是y的值。label是为了显示legend用的。

plot(time,y[:,1],label="y'")     #y[:,1]即返回值的第二列,是y’的值

xlabel('t')

ylabel('y')

legend()

show()

输出结果如下:

以上就是关于哪位可以用python语言写一下这个方程组怎么解全部的内容,包括:哪位可以用python语言写一下这个方程组怎么解、求助,用python解riccati 方程、怎么用python解一元二次方程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10634973.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存