十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
先指出一個(gè)錯(cuò)誤:你list1中只有一個(gè)元素,應(yīng)該用list1[0]取出;
為留壩等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及留壩網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站制作、網(wǎng)站建設(shè)、留壩網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
這個(gè)問(wèn)題,我也一直在找解決辦法,苦搜無(wú)果,自己想到了增加方程組變量的方法來(lái)解決:新增變量-表達(dá)式=0,把這個(gè)方程同之前你得到的結(jié)果組成三元一次方程組,得出新增變量的解即可。
z=Symbol('z')
result1=solve([z-list1[0],x-result[x],y-result[y]],[x,y,z])
result1[z]就是你要的結(jié)果,拿走不謝~~
如果一元方程的解(x)帶回表達(dá)式,思路一樣,只是注意一元方程的解是存放在列表里(假設(shè)為result[]),而不是字典,列表中的第一個(gè)元素為實(shí)數(shù)解,所以代碼變?yōu)椋?/p>
y=Symbol('y')
result1=solve([y-list1[0],x-result[0],[x,y])
result1[y]即是。
用牛頓迭代法 + 多項(xiàng)式除法化簡(jiǎn)。
1)針對(duì)方程組 f(x),首先用牛頓迭代法得到方程的第一個(gè)根(a),那么 f(x) = (x-a)g(x)
2)用多項(xiàng)式除法,計(jì)算 g(x) = f(x)/(x-a)
重復(fù)第一步,得到 g(x) 的根,然后再重復(fù)第二步,進(jìn)一步對(duì)方程降冪。
最終就可以化簡(jiǎn)整個(gè)方程。
不是很明確你需要做到什么程度,但基本可以通過(guò)以下兩個(gè)手段得到:
手工解方程得到解析解,然后套入公式
使用一些工具包例如numpy可以自動(dòng)求解
以下都給出例子
import?numpy?as?np
import?matplotlib.pyplot?as?plt
plt.axis("equal")
a?=?np.linspace(1,10,100)?#?a?的變化范圍可以自己挑,前兩個(gè)參數(shù)控制,
#?使用?numpy?自動(dòng)求解
res?=?[]
for?x?in?a:
A?=?np.mat("1,?2;?{},?-1".format(x))
b?=?np.mat("{},?10".format(x)).T
res.append(np.linalg.solve(A,?b))
#?計(jì)算完畢后取出每對(duì)x和y
x1?=?[float(r[0])?for?r?in?res]
y1?=?[float(r[1])?for?r?in?res]
plt.plot(x1,?y1)
#####################################
#?手工計(jì)算過(guò)程很簡(jiǎn)單不放上來(lái)了,直接上結(jié)果
x2?=?[(a1?+?20)?/?(2*a1?+?1)?for?a1?in?a]
y2?=?[(a1**2?-?10)?/?(2*a1?+?1)?for?a1?in?a]
plt.plot(x2,?y2)