matlab二次曲线拟合
电容c=10^-6*[00.471.472.473.674.24.675.876.87](F);对应的电流i=[0.3690.3420.2890.2420.2040.19...
电容c=10^-6*[0 0.47 1.47 2.47 3.67 4.2 4.67 5.87 6.87] (F);对应的电流i=[0.369 0.342 0.289 0.242 0.204 0.198 0.202 0.234 0.274] (A);求描绘二次拟合出来的c与i^2的拟合曲线。我先开始二次拟合的参数精度不够,一次项和常数项参数都是0,不满足要求。
展开
2个回答
2014-03-28
展开全部
更多追问追答
追问
我也做到了你这步,是用函数van做的,但是你看,描绘出的曲线不是光滑的呀
追答
你之前问的问题是“一次项和常数项参数都是0”,并不是曲线是否平滑。关于系数为0的问题我前面解释过了。
曲线不光滑是因为取的点少,看起来折线的感觉比较明显。其实MATLAB画的都是折线,只不过点比较密集的时候看起来就平滑了。例如,你可以试试把
plot(c,i.^2,'r.',c,polyval(f,c))
改成
c1=linspace(min(c),max(c),200);
plot(c,i.^2,'r.',c,polyval(f,c1))
楼下所谓“cftool结果会好一些”属于很流于表面的说法。cftool只是提供了一个进行拟合的GUI,该函数自身没有任何拟合的算法,都是调用其它的算法。只要你用的是多项式拟合,用cftool与polyval的结果不会有任何区别,差别只在于一个是通过GUI来做,而另一个是直接调用命令而已。GUI的方式可能对于新手较为适合,但对于熟悉编程的人来说,有时反而感到太繁琐。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询