matlab 曲线拟合cftool中怎样设置待定参数的精度(增加小数位数) 20

想让参数有效位数更多一点,更精确一点啊文件1.txt中原始数据为101535.59206201535.69676301535.80146401535.9061650153... 想让参数有效位数更多一点,更精确一点啊
文件1.txt中原始数据为
10 1535.59206
20 1535.69676
30 1535.80146
40 1535.90616
50 1536.01086
60 1536.11556
70 1536.22026
在matlab中用以下程序
A=load('1.txt '); %载入文件*.txt中的数据
X=A(:,1) %取A的第一列数据
Z=A(:,2)
plot(X, Z);
用matlab的cftool中的线性多项式拟合以后出现
Linear model Poly1:
f(x) = p1*x + p2
Coefficients (with 95% confidence bounds):
p1 = 0.01047 (0.01047, 0.01047)
p2 = 1535 (1535, 1535)
p2应该是1535.48736,怎样才能精确到0.00001?请高手指教。
展开
 我来答
钺小夏侯pf
推荐于2018-05-11 · TA获得超过2460个赞
知道小有建树答主
回答量:578
采纳率:69%
帮助的人:389万
展开全部
数据准备:
我们以一组多项式数据为例,进行示例,假如多项式是y=4x^3+3x^2+2产生的数据,x取0到3之间间隔为0.3的数。具体数据如下:

调用工具箱:
关于如何调用工具箱我在其他经验中有详细的介绍,有兴趣的可以查看。
这里我们用命令cftool进行调用拟合工具箱,在MATLAB主窗口中输入 cftool 回车
可以看到如下拟合工具箱界面

拟合操作步骤:
首先我们将要拟合的数据选入到工具箱中,如下图,在红圈处,点击向下三角,分别将要拟合的x y 选入,然后点击右侧的最上方的下三角,然后选择polynomial( 多项式),下面的degree是阶数,也就是x的最高次数,选择不同的degree,在图的左下角是拟合的结果,包括拟合的系数以及方差相关系数等,右侧是数据点,以拟合曲线

结果分析:
我们拟合的时候,一般情况下不知道要拟合的多项式是几阶的,我们一般调节degree都是从1逐渐增大,只要精度符合要求,就可以了,并不是精度越高越高。
拟合结果说明:
Linear model Poly3:
f(x) = p1*x^3 + p2*x^2 + p3*x + p4
Coefficients (with 95% confidence bounds):
p1 = 4 (4, 4)
p2 = 3 (3, 3)
p3 = 4.593e-15 (-3.266e-14, 4.185e-14)
p4 = 2 (2, 2)

Goodness of fit:
SSE: 2.386e-28
R-square: 1
Adjusted R-square: 1
RMSE: 5.839e-15
从以上可以看到最终拟合的y关于x的函数为:
f(x)=4*x^3+3*x^2+4.593e-15*x+2
我们可以看到一次项的系数为4.593e-15,实际上就是4.593*10^(-15),这个数量级完全可以认为是0,所以拟合的结果我们认为是:
f(x)=4*x^3+3*x^2+2
这里的方差SSE数量级为10的负28次方,相关系数 R-square=1,说明拟合的结果很好。
meng1136370119
2019-08-04 · TA获得超过735个赞
知道小有建树答主
回答量:228
采纳率:50%
帮助的人:32.8万
展开全部
评论区有个大佬 ‘paxingix ’已经说了,我再总结整理一下:
有两种办法获得参数: 1.使用cftool,保存拟合的模型后(比如存成myfitted_model)在命令行窗口使用coeffvalues(myfitted_model)来读出参数。 注意,这里保存方法是:cftool窗口菜单栏---‘Fit’--savetoworkspace,然后命名为myfitted_model。
2.不用cftool,使用polyfit(x,y,n)来对你的数据进行拟合,不加分号会直接给出各项参数; 或者在 workspace里面打开看参数时候会精确到小数点后好几位。【多说一句:polyfit是用来拟合一元多项式的线性回归模型,多元线性回归拟合时需要 fitlm函数】
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ruifengcao
推荐于2017-12-16 · TA获得超过9491个赞
知道大有可为答主
回答量:3579
采纳率:33%
帮助的人:2083万
展开全部
Z的精度没有降低,只是显示了四位小数而已,matlab的所有计算都是默认为长精度的!你可以在file中的preference中设置显示长度!

祝你学习愉快@!
更多追问追答
追问
我知道啦 在file中的preference中设置显示长度,方法如下:与大家共同分享啊
As an alternative to format, use preferences. Select Preferences from the File menu in the MATLAB desktop and use Command Window preferences
追答
嗯,你说的很对!其实这个设置没什么大的用处的!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sunyinhang
2014-09-15 · TA获得超过690个赞
知道小有建树答主
回答量:462
采纳率:0%
帮助的人:144万
展开全部
我觉得可以先减去1535,然后拟合了再加上
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tianlaitababa
2012-05-24
知道答主
回答量:58
采纳率:0%
帮助的人:16.7万
展开全部
想问一下,用CFtool为什么还要设置要求参数(a,b)的上限和下限,有什么原则,这个设置对所求的精度有没有影响?请帮忙回答一下,谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式