當前位置:首頁 » 遺傳因素 » 遺傳演算法求解方程

遺傳演算法求解方程

發布時間: 2021-03-22 18:00:25

A. 如何用matlab遺傳演算法求解方程最優問題

在用ga()遺傳演算法函數時,除了考慮x1、x2的上、下界的限制值,還應考慮增加ymax<200的限回制條件,即

140.6+2.31x1-0.61x2-0.015x1^2+0.005x1x2<200

按此要求答修改,運行可以得到

x 1= 42.7066 ; x 2=30.0015;y=199.9999

B. 遺傳演算法解方程組 matlab

老鐵 你這個太猛了,我確實是懵逼了,我看只有極少人能做出來吧

C. 遺傳演算法解非線性方程組能解准嗎

如果maple數值解求解不出來,可能的情況有二。1、方程組矛盾,檢查方程組列寫是否錯誤,如果正確嘗試用最小二乘法求解。2、數值解由於搜索空間太大,沒法找到,嘗試用啟發式演算法,例如遺傳演算法,類似你寫的這些方程,可以用matlab中的遺傳演算法工具箱,應該也寫成最小二乘的形式。

這樣的問題,我沒有遇到過,fsolve命令已經很強大了,如果方程組正確,fsolve求不出來,我就不知道如何處理了。

希望以上對你有幫助。

D. 目標方程和約束條件有微分方程,應該怎麼用遺傳演算法擬合

用遺傳演算法ga函數是可以擬合帶有目標方程和約束條件且含有微分方程的系數,其擬合原則是誤差最小估計原則。
解決問題的方法:1、建立自定義目標函數;2、建立自定義約束函數;3、建立自定義微分方程函數;4、誤差最小控制函數;5、利用遺傳演算法ga函數求解擬合系數,利用ode45函數求解微分方程;6、建立嵌套函數計算

E. 遺傳演算法求解超越方程,matlab程序,tanx=1/x, x∈[0,60],需要程序代碼,謝謝!

用遺傳演算法求解超越方程可以按下列方法來編寫代碼。

1、求解此問題時,首先可以將方程表內示成y=tanx-1/x的形式,當容y=0時,得到的解即為x。

該方程可以按這樣來定義,func=@(x) tanx-1/x

2、由於該方程在[0,60]間有若干個解,所以可以用循環語句來得。如按遺傳演算法ga()函數求解超越方程,可以按下列命令來求解。

[x, fval] =ga(func,1);

y=func(x) ;

3、當abs(y)<=0.005(誤差)時,顯示x、y值。

按上述方法編程後運行可以得到如下x值。

F. matlab中用遺傳演算法擬合方程

例如:
已知數據隊列 buf=【.】
x取值 1:n n是隊列長度
函數 f(x)=a+b*sin(c*x+d) .
avg 是隊列平均值
a b c d 為參數 a范圍 (2/3,1)*avg
b范圍 (0,1/3)*avg
c的范圍 (0,24*pi)
d (0,2*pi)
1、首先定義目標函數
function y=ga_curfit(x)
global ydata n
t=1:n;
y=0;
for i=1:n
y=y+(ydata(i)-(x(:,1)+x(:,2).*sin(x(:,3).*t(i)+x(:,4)))).^2/n;
end
y=sqrt(y);
end
2、把數據b.txt放在工作空間目錄中
然後再命令窗口中輸入
clear
global ydata n
format long g
load b.txt
ydata=b';
n=length(ydata);
avg=sum(ydata)/n;
LB=[2/3*avg 0 0 0];
UB=[1*avg 1/3*avg 24*pi 2*pi];
nvars=4;
options=gaoptimset;
options=gaoptimset(options,'PopulationSize',300);
options=gaoptimset(options,'CrossoverFraction',0.8);
options=gaoptimset(options,'MigrationFraction',0.1);
options=gaoptimset(options,'Generations',500);
options = gaoptimset(options,'TolFun',1e-50);
%options = gaoptimset(options,'InitialPopulation',final_pop);
options = gaoptimset(options,'Display','final');
options = gaoptimset(options,'PopInitRange',[LB;UB]);
options = gaoptimset(options,'PlotFcns',@gaplotbestf);
options=gaoptimset(options,'Vectorize','on');%目標函數向量化
[x,fval,exitflag,output,final_pop,scores]=ga(@ga_curfit,nvars,[],[],[],[],LB,UB,[],options);
t=1:n;
plot(t,ydata,'r*');
hold on
plot(t,x(1)+x(2)*sin(x(3)*t+x(4)))
legend('數據','擬合')

熱點內容
法國電影小男孩在農場遇到一隻白狗 發布:2024-08-19 08:36:47 瀏覽:594
微光上有什麼恐怖片 發布:2024-08-19 05:25:40 瀏覽:915
穿越香港鬼片滅鬼的小說 發布:2024-08-19 03:36:10 瀏覽:833
惡之花都敏秀姐姐扮演者 發布:2024-08-19 02:22:07 瀏覽:321
thai好看電影 發布:2024-08-18 11:34:37 瀏覽:795
電影內容女的是傻子容易尿褲子,男的很窮單身漢 發布:2024-08-18 10:31:36 瀏覽:129
雙機巨幕廳和4k廳哪個好 發布:2024-08-18 10:18:41 瀏覽:818
日本僵屍片上世紀 發布:2024-08-18 07:32:00 瀏覽:537
怪物 韓國電影在線 發布:2024-08-18 03:49:17 瀏覽:491
第九區一樣的 發布:2024-08-17 23:16:05 瀏覽:528