请帮忙编写一个matlab计算程序,拟合二元一次函数z=f(x,y)

希望得到一个z=ax+by+c的二元一次函数其中:x:50100150200250300350400450500。y:4080120160200z是一个10X5的矩阵(其... 希望得到一个z=ax+by+c的二元一次函数
其中:
x:50 100 150 200 250 300 350 400 450 500。
y:40 80 120 160 200
z是一个10X5的矩阵(其实就是X行和Y列得到的数据点):
0.05 0.05 0.05 0.05 0.05
0.25 0.15 0.11 0.05 0.05
0.5 0.2 0.2 0.04 0.04
1.6 1 0.5 0.11 0.07
2.5 2.4 1.14 0.34 0.12
3.2 2.7 1.54 0.7 0.21
3.4 3.1 2.1 1.15 0.3
3.75 3.5 2.56 1.4 0.6
4 3.8 2.95 2 0.9
4.2 4 3.2 2.2 1.1
请帮忙别写一个拟合程序
你好,十分感谢你的帮助。我想问一下,目前这个运算结果最后生成的图形是一个平面。如果我想将原始数据xyz描出一个曲面,需要怎么做?能不能再帮忙补充两句代码,同时将给出的已知数据描点连成曲面。继续给分,再次感谢!
展开
真greatdju
2013-07-22 · TA获得超过3855个赞
知道小有建树答主
回答量:1300
采纳率:91%
帮助的人:731万
展开全部

clear

clc


x=[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.05

0.25 0.15 0.11 0.05 0.05

0.5 0.2 0.2 0.04 0.04

1.6 1 0.5 0.11 0.07

2.5 2.4 1.14 0.34 0.12

3.2 2.7 1.54 0.7 0.21

3.4 3.1 2.1 1.15 0.3

3.75 3.5 2.56 1.4 0.6

4 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))


本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cxd1301
2013-07-22 · TA获得超过3020个赞
知道小有建树答主
回答量:593
采纳率:50%
帮助的人:302万
展开全部
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.05
0.25 0.15 0.11 0.05 0.05
0.5 0.2 0.2 0.04 0.04
1.6 1 0.5 0.11 0.07
2.5 2.4 1.14 0.34 0.12
3.2 2.7 1.54 0.7 0.21
3.4 3.1 2.1 1.15 0.3
3.75 3.5 2.56 1.4 0.6
4 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)

结果:
a =
0.0072

b =
-0.0132

c =
1.0057

copyright (c) by cxd1301
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式