請幫忙編寫matlab計算程式,擬合二元一次函式z f

2021-03-11 17:20:04 字數 2227 閱讀 2634

1樓:真

clear

clcx=[50 100 150 200 250 300 350 400 450  500];

y=[40 80 120 160 200];

z=[0.05 0.05 0.

05 0.05 0.050.

25 0.15 0.11 0.

05 0.050.5 0.

2 0.2 0.04 0.

041.6 1 0.5 0.

11 0.07

2.5 2.4 1.

14 0.34 0.123.

2 2.7 1.54 0.

7 0.213.4 3.

1 2.1 1.15 0.

33.75 3.5 2.56 1.4 0.64 3.8 2.95 2 0.9

4.2 4 3.2 2.2 1.1];

[y,x]=meshgrid(y,x);

p=[x(:),y(:),ones(numel(z),1)]\z(:)%p=[a;b;c]

plot3(x(:),y(:),z(:),'ro');

hold on;grid on

mesh(x,y,p(1)*x+p(2)*y+p(3))

2樓:匿名使用者

clear;

clc;

x = [50 100 150 200 250 300 350 400 450 500];

y = [40 80 120 160 200];

[myx,myy] = meshgrid(x,y);

z = [0.05 0.05 0.

05 0.05 0.050.

25 0.15 0.11 0.

05 0.050.5 0.

2 0.2 0.04 0.

041.6 1 0.5 0.

11 0.07

2.5 2.4 1.

14 0.34 0.123.

2 2.7 1.54 0.

7 0.213.4 3.

1 2.1 1.15 0.

33.75 3.5 2.56 1.4 0.64 3.8 2.95 2 0.9

4.2 4 3.2 2.2 1.1];

cxd_1 = reshape(myx',50,1);

cxd_2 = reshape(myy',50,1);

cxd_3 = ones(50,1);

cxd_x = [cxd_1 cxd_2 cxd_3];

cxd_y = z(:);

myb = regress(cxd_y,cxd_x);

a = myb(1)

b = myb(2)

c = myb(3)結果

怎麼進行matlab二元函式擬合

3樓:匿名使用者

假如你現在有對應的三個矩陣x,y,z的資料那麼xy=[x(:) y(:)];

z=z(:);

fun=@(p,t) p(1)+p(2)*t(:,1)+p(3)*t(:,1).

^2+p(4)*t(:,2)+p(5)*t(:,2).

^2+p(6).*t(:,1).

*t(:,2);

pp=nlinfit(xy,z,fun,[1 1 1 1 1 1]);

得到的pp是6個元素的數內組,分別對應擬合所得的容p(0)~p(5);

4樓:匿名使用者

設擬合的2元2次方bai程為

f(x,y)=b1*x²+b2*x*y+b3*y²+b4*x+b5*y+b6

用matlab的regress()函式

du擬合,也可以zhi用自定義函式擬合。

daoregress()函式命令格式為

[b,bint,r,rint,stats] = regress(y,x)

b——引數估計值,擬合函式係數

bint——b的置信區間

r——殘差向量,測試值與擬合值的差值

rint——r的置信區間

stats——檢驗統計量,置信度、f統計量,p值y——因變數觀察值

x——自變數觀察值

根據提供的資料,通過擬合得

b1 =0

b2 =-1734024.851

b3 =-31661318.71

b4 =3785724.073

b5 =9670754.012

b6 =-512586.098

C語言編寫程式計算C語言編寫一個程式計算。。。

親,你的程式迴圈copy永遠不會停止 bai此句for i 1 fabs 1 i i 1 1e 6 i i永遠大於0 所以不會停du止 所以沒輸出入 沒錯zhi誤計算機只能計算有限的數值,這dao種無限逼近型的不能用這種方法算的 fabs 1 i i 1 有錯誤,bai 1 i i 1 1 i i ...

編寫程式計算1 2 2 3 3 3 4 4 4 4 9 9 9 9 9 9 9 9 9 用迴圈實

int sum 0 for int i 1 i 9 i i 從1到9 int product 1 for int j 0 j private sub command1 click dim i as integer,n as doublefor i 1 to 9 n n i i next end su...

編寫matlab程式,實現能輸入任意數字,字母后轉換成二進位制

定義一個inline函式 letter2num inline x a 1 然後可以直接轉換 letter2num abcdefgxyz ans 1 2 3 4 5 6 7 24 25 26 但要注意,輸入引數只能是小寫字母,不能包含其它字元。定義一個inline函式,然後可以直接轉換。呼叫函式uin...