用MATLAB进行曲线拟合 我需要使用自定义表达式y=(a+b*x)*c^x,但是结果是一条水平的线,新手求教~ 50
另:我试了下在自定义表达式中输入y=ax^2+bx+c,结果也是非常不靠谱的一条,和使用系统的二次多项式拟合结果相差很大。...
另:我试了下在自定义表达式中输入 y=ax^2+bx+c,结果也是非常不靠谱的一条,和使用系统的二次多项式拟合结果相差很大。
展开
2个回答
展开全部
把你邮箱给我,我把数据按照你的三个方程处理后的结果编写成文档发给你。
我做过拟合了,你那三个烂方程确实是直线。原因有二,第一你的方程本身确立的就不服从数据的分布规律,第二你看看CFtool里边的自定义函数,全是x的多少次方,而你却把x放在指数位置,可能工具箱对这种函数的处理不擅长。
我用y=a*b^x+c做了一次,效果还可以
Goodness of fit:
SSE: 3.967e+006
R-square: 0.9042
Adjusted R-square: 0.8929
RMSE: 483.1
我做过拟合了,你那三个烂方程确实是直线。原因有二,第一你的方程本身确立的就不服从数据的分布规律,第二你看看CFtool里边的自定义函数,全是x的多少次方,而你却把x放在指数位置,可能工具箱对这种函数的处理不擅长。
我用y=a*b^x+c做了一次,效果还可以
Goodness of fit:
SSE: 3.967e+006
R-square: 0.9042
Adjusted R-square: 0.8929
RMSE: 483.1
更多追问追答
追问
baiyanghtt@163.com 谢谢啦~
这道题目就是给了数据和几个方程 问哪些符合 数据的规律 那几个烂方程拟成直线我也不敢说这就是不符合啊.....
追答
那你说说,到底是要我用什么方程拟合,还是我自己想方程拟合?只是那三个用CFtool做出来的曲线真的就是三条直线呀。
展开全部
你先用下面命令试一试看
x=[.......];
y=[.......];
fun1=inline('((1)*x^2+c(2)*x)*c(3).^x,'c','x'); %拟合函数 y=(a+b*x)*c^x
c=lsqcurvefit(fun1,[0,0],x,y) %求拟合系数
a=c(1)
b=c(2)
c=c(3)
如不行,可能你的数据不符合y=(a+b*x)*c^x的规律
x=[.......];
y=[.......];
fun1=inline('((1)*x^2+c(2)*x)*c(3).^x,'c','x'); %拟合函数 y=(a+b*x)*c^x
c=lsqcurvefit(fun1,[0,0],x,y) %求拟合系数
a=c(1)
b=c(2)
c=c(3)
如不行,可能你的数据不符合y=(a+b*x)*c^x的规律
追问
不知道我输得对不对...还是报错...
如果可以的话请帮看一下这个数据
x=[1991:1:2010}
y=[3330.7 3861.2 3426.7 3619.2 3940.1 4661.9 4249.8 5714.9 4810 5418.6 5021.9 5005.8 5625.4 6451.7 6027.6 6202.7 7199.5 8061.5 7858 7491.1]
y=a*b^x+c
y=a+b*x*c^x
y=(a+b*x)*c^x 我只会用curve fitting tool 这几个都只能用 Custom Equation吧 结果就是图片里这样..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询