導航:首頁 > 編程語言 > python解非線性方程組

python解非線性方程組

發布時間:2022-07-14 18:59:12

A. 求一道用matlab編程解非線性方程組

對於非線性方程組F(X)=0,用fsolve函數求其數值解。fsolve函數的調用格式為: X=fsolve('fun',X0,option) 其中X為返回的解,fun是用於定義需求解的非線性方程組的函數文件名,X0是求根過程的初值,option為最優化工具箱的選項設定。最優化工具箱提供了20多個選項,用戶可以使用optimset命令將它們顯示出來。如果想改變其中某個選項,則可以調用optimset()函數來完成。例如,Display選項決定函數調用時中間結果的顯示方式,其中『off』為不顯示,『iter』表示每步都顯示,『final』只顯示最終結果。optimset(『Display』,『off』)將設定Display選項為『off』。 例如:求下列非線性方程組在(0.5,0.5) 附近的數值解。 (1) 建立函數文件myfun.m。 function q=myfun(p) x=p(1); y=p(2); q(1)=x-0.6*sin(x)-0.3*cos(y); q(2)=y-0.6*cos(x)+0.3*sin(y); (2) 在給定的初值x0=0.5,y0=0.5下,調用fsolve函數求方程的根。 x=fsolve('myfun',[0.5,0.5]',optimset('Display','off')) x = 0.6354 0.3734 將求得的解代回原方程,可以檢驗結果是否正確,命令如下: q=myfun(x) q = 1.0e-009 * 0.2375 0.2957 可見得到了較高精度的結果。

B. python的解方程能力好像不是很強啊,為什麼復雜一點的指數方程就求不出來了

內置的演算法不支持這么復雜的方程求解,需要編寫特別的演算法。

C. PSO如何求解非線性方程組求解

PSO搜索需要一個適應度函數,粒子的好壞是根據其適應度來的,一個非線性方程組,比如說,
f1(x,y)=0;
f2(x,y)=0;

你要搜索它的解,需要定義一個適應度函數,你可以定義
|f1|+|f2|或者定義(f1)^2+(f2)^2,這樣再搜索時尋找適應度函數值最小的那個解,最優粒子的適應度會越來越趨進0,當適應度函數值為0時,必有f1(x,y)=0;f2(x,y)=0;因此,就得到了方程組的解。

當然,你也可以根據側重點的不同來定義適應度函數,例如,若希望優先考慮方程1,則可把適應度函數定義為10*|f1|+|f2|或者10*(f1)^2+(f2)^2,這里的10是我隨意定的,實際中可根據需求來定。

另外,適應度函數,也不是一定向上面那麼定義,你要定義為(f1)^4+(f2)^2等等也是可以的,只是最終的側重點不同了,比如說,f1=0.1,f2=0.15,沒有f1=0.3,f2=0.1的適應度好,顯然是不合乎實際的。

再者,你還可以定義適應度函數為1/|f1| + 1/|f2| ,但是這樣定義後,適應度函數值越大,粒子的適應度越好,在搜索的過程中,最優粒子的適應度函數值越來越大,但理論上適應度函數值為無窮大才行,實際搜索永遠都達不到。

該說的我都說明了,以前寫過PSO演算法,這些都是自己的心得,不知道能否幫上你~~

D. 求解非線性方程組的牛頓迭代法的具體思想及方法並附有matlab 源程序

function x=Newton(fname,dfname,x0,e,N)
%用途:Newton迭代法解非線性方程f(x)=0
%fname和dfname分別表示f(x)及其導函數的M函數句柄或內嵌函數表達式
%x0為迭代初值,e為精度(默認值1e-7)
%x為返回數值解,並顯示計算過程,設置迭代次數上限N以防發散(默認500次)
%實例:解方程ln(x+sin(x))=0
%在matlab窗口中輸入:Newton(@(x)log(x+sin(x)),@(x)(1+cos(x))/(x+sin(x)),0.1)
if nargin<5,N=500;end
if nargin<4,e=1e-7;end
x=x0;x0=x+2*e;k=0;
fprintf('x[%d]=%12.9f\n',k,x)
while abs(x0-x)>e&&k<N
k=k+1;
x0=x;x=x0-feval(fname,x0)/feval(dfname,x0);
fprintf('x[%d]=%12.9f\n',k,x)
end
if k==N
fprintf('已達到迭代次數上限');
end

上面的程序段只是一個思路,你可以自己再理解一下,其實matlab中有一個內部函數fsolve,就可以直接求解非線性方程組的,很簡單好用的!

祝你解決問題!

E. python解非線性方程組(3個),為什麼只有一組解應該有2組解啊,求解!!!

這是我按照你的方法得到的結果

>>>importmath
>>>deff(list):
...x,y,z=list//注意這里是list的解包不過如果你不傳入list而是別的比如字元串就需要用到tolist了
...return[math.sqrt((x-15.34)**2+(y-51.59)**2+(z-57.55)**2)-4.59,
math.sqrt((x-18.92)**2+(y-49.03)**2+(z-53.91)**2)-6.33,
math.sqrt((x-16.46)**2+(y-55.25)**2+(z-58.49)**2)-5.32]
...
>>>f([9,8,7])
[62.459132731154696,56.776381610737275,64.96110841470843]
>>>f([1,1,1])
[72.62972675424331,67.34140150696197,75.22299597109608]
>>>是三個結果沒錯啊

我猜你的 fsolve的方法內容是這樣的吧

def fsolve(method,list):

return method(list)


或者你在fsolve裡面對 f(list)返回的結果又做了一些操作,發一下你的 fsolve方法吧 要不然找不到問題所在 目前來看 你的f方法是正確的

F. 這種非線性方程組如何解

將常數先帶進去,然後再解方程組!
不過,你確定你沒寫錯嗎?你的方程中一共有E R F S xA yA xS yS xF九個變數,後面七個一直,三個方程,兩個變數啊!

>> [E R F S xA yA xS yS xF]=solve('E+R=F+S','E*yA+R*xA=F*xF','E*yS+R*xS=S','xF=0.2','F=100','S=100','xA=0.02','yA=1.356*xA^1.201','yS=1.618-0.6399*exp(1.96*yA)','xS=0.067+1.43*xA^2.273')

Warning: 10 equations in 9 variables.

你看,我把所有式子寫在上面,求解析解時,警告:「10 equations in 9 variables.」即10個方程9個變數,方程無解,你確定你沒錯嗎?
修改好了後給我發個消息,我再幫你解決

G. python解非線性方程組(3個),為什麼只有

# encoding: utf-8
from scipy.optimize import fsolve
from numpy import *
beita = 1
gama = 1

#以下為Mohr-Columb准則計算
# def f(x):
# OH = (0.33/(1-0.33)+beita)*(14.12-0.73*4.68)+0.73*4.68
# Oh = (0.33/(1-0.33)+gama)*(14.12-0.73*4.68)+0.73*4.68
# Or = 0.946*x+0.25272
# Osita = 3*OH-Oh-x*0.683552239-1.481
# Oz = 12.639+0.66*(OH-Oh)+0.316447761*x
# x = float(x)
# return Osita-3.4164-(Or-3.4164)*4.4835+10.29
# result1 = fsolve(f, 7)
# print '摩爾-庫倫准則計算結果:', result1*10/6/9.8, 'g/cm^3'

# 以下為Druker-Prager准則計算
def g(y):
OH = (0.33/(1-0.33)+beita)*(14.12-0.73*4.68)+

H. 如何解矩陣非線性方程組

只有1個矩陣是不能轉化成非線性方程組的,還要知道一個列向量,這個列向量作為非其次方程組等號右邊的量
然後矩陣的每行的每個元素後面依次加上x1...xn(如果這行有n個元素的話,也就是方程組有n個變數),第2行也是這樣,一直到第n行(假設有n個方程組)

閱讀全文

與python解非線性方程組相關的資料

熱點內容
解壓的玩具教程可愛版 瀏覽:364
哪個求職app比較靠譜 瀏覽:886
java的讀法 瀏覽:59
nod32區域網伺服器地址 瀏覽:1002
數碼科技解壓 瀏覽:235
新網的雲伺服器管理界面復雜嗎 瀏覽:367
無人聲解壓強迫症視頻 瀏覽:571
計算機編譯運行 瀏覽:639
單片機嵌套 瀏覽:988
python字元串中符號 瀏覽:787
python正則表達式貪婪模式 瀏覽:648
愛國精神指的是什麼app 瀏覽:408
壽司解壓系列全集視頻 瀏覽:913
物體三維重建演算法 瀏覽:984
fuli直播app哪個好 瀏覽:918
租辦公室用什麼app 瀏覽:106
醫師定期考核刷題app哪個好 瀏覽:338
導出dmp文件命令 瀏覽:288
手機百度網盤怎麼解壓密碼文件 瀏覽:585
索引重新編譯 瀏覽:606