matlab二元函数拟合

x=[23700200002300220020004500]';y=[9.39.49.46.79.28.7]';z=[25014162511238679607773539... x=[23700 20000 2300 2200 2000 4500]';
y=[9.3 9.4 9.4 6.7 9.2 8.7]';
z=[25014 16251 12386 7960 7773 5390]';
这是我的数据,我想拟合一个x,y为自变量,z为因变量,即z=……x+……y的形式,且已知y越大,z越大,y属于(0,10),x属于(1000,10000),z属于(1000,100000)。
我初步做了个线形拟合,发现误差在30%左右。
观察到y值虽小,但影响重大,因此考虑指数拟合,但不知道怎样进行二元指数拟合。因此来问:
1、帮我参谋一下,指数函数是否满足这样的函数关系?
2、怎样进行二元指数拟合?如z=ax+2(或自然对数e)^(bx)+c(a,b,c为常数)
或另设解析式,一定要给出程序怎么写!!
感谢~
展开
 我来答
百度网友6f18c64d5
推荐于2017-10-15 · TA获得超过2715个赞
知道小有建树答主
回答量:630
采纳率:100%
帮助的人:749万
展开全部
1.不要想着什么都直接问别人要程序
2.matlab里有一个非线性拟合函数lsqcurvefit,我给你个范例,照着写就行了

x=0.019,0.023,0.027
y=430,380,256
3 parameters: a,b,c
target function: y=(a*(1-x/b)+x/b)^c

================================================

function Untitled3

clc

xi=[0.019,0.023,0.027];
yi=[430,380,256];
abc0=[4,0.5,5];
abc = lsqcurvefit(@fun,abc0,xi,yi)

function y = fun(abc,x)
y = (abc(1)*(1-x/abc(2))+x/abc(2)).^abc(3);

abc =

31.2588 -3.9585 1.7033

============================================
3.采用什么函数形式拟合要看你有没有合适的理论模型,如果没有模型的话,用多项式拟合最方便,matlab有函数polyfit,但我不知道能不能拟合二元函数,自己看下帮助
海伦教你学音标
推荐于2017-10-14
知道答主
回答量:8
采纳率:0%
帮助的人:8640
展开全部
1.不要想着什么都直接问别人要程序
2.matlab里有一个非线性拟合函数lsqcurvefit,我给你个范例,照着写就行了
x=0.019,0.023,0.027
y=430,380,256
3 parameters: a,b,c
target function: y=(a*(1-x/b)+x/b)^c
================================================
function Untitled3
clc
xi=[0.019,0.023,0.027];
yi=[430,380,256];
abc0=[4,0.5,5];
abc = lsqcurvefit(@fun,abc0,xi,yi)
function y = fun(abc,x)
y = (abc(1)*(1-x/abc(2))+x/abc(2)).^abc(3);
abc =
31.2588 -3.9585 1.7033
============================================
3.采用什么函数形式拟合要看你有没有合适的理论模型,如果没有模型的话,用多项式拟合最方便,matlab有函数polyfit,但我不知道能不能拟合二元函数,自己看下帮助
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式