| 3 | 1/1 | 返回列表 |
| 查看: 2480 | 回復(fù): 2 | |||
dplrwp新蟲 (初入文壇)
|
[求助]
怎樣用非線性最小二乘法擬合得到方程中的未知參數(shù) 已有2人參與
|
|
方程y=Ax+Bx/(1+Cx) 采用最小二乘法模擬得到參數(shù)A、B、C。 x:0.452 、3.099、15.492、33.8464、51.522、70.314 y:9.548、16.901、21.508、26.1536、28.478、29.686 |
新蟲 (初入文壇)
|
將公式改寫成 (A+B)x + AC x^2 -C xy = y; 型函數(shù) P = [x, x^2, -xy]; v = [A+B; AC; C]; 剩下的公式不好敲,看下面的程序。 采用matlab編程如下: %% main clear all; close all; clc; xi = [0.452, 3.099, 15.492, 33.8464, 51.522, 70.314]; yi = [9.548, 16.901, 21.508, 26.1536, 28.478, 29.686]; K = zeros(3); b = zeros(3,1); for i=1:size(xi,2) x = xi(1,i); y = yi(1,i); P = [x, x^2, -x*y]; K = K + P'*P; b = b + P'*y; end % v = [A+B; AC; C] v = K\b; C = v(3,1); A = v(2,1)/C; B = v(1,1)-A; y_app = A*xi + B*xi./(1+C*xi); plot(xi,yi,'-r*',xi,y_app,'g-o') 上面一句是畫圖,這里面插不了圖,你把程序跑一邊就能看見。 計算結(jié)果:給出x值,得到的模擬的y值; 2.4513 11.2275 22.2999 26.3347 28.2622 29.7421 前兩個值不太準(zhǔn)確,建議多采用幾個數(shù)據(jù)點,結(jié)果會跟精確。 |

鐵桿木蟲 (職業(yè)作家)
| 3 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|