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,不满足要求。 展开
 我来答
匿名用户
2014-03-28
展开全部

并不是精度不够,后两项的系数也并不是0,只是结果显示有效数字位数的问题。

>> num2str(f)

ans =

5246096810.4814     -45015.413449487     0.13696632426218

 

>> plot(c,i.^2,'r.',c,polyval(f,c))

更多追问追答
追问
我也做到了你这步,是用函数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的方式可能对于新手较为适合,但对于熟悉编程的人来说,有时反而感到太繁琐。

Sievers分析仪
2024-10-13 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准... 点击进入详情页
本回答由Sievers分析仪提供
comeon2012640
2014-03-28
知道答主
回答量:43
采纳率:0%
帮助的人:9.1万
展开全部
试试用cftool,这个结果会好一些,输入横纵坐标分别为c与i^2就可以,你还可以看到拟合的曲线结果图,里面可以选择拟合的公式
追问
cftool能够得到曲线的最小值、零点吗?如何做呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式