24小时热门版块排行榜    

查看: 2266  |  回复: 9

xiaojunwan

新虫 (小有名气)

[求助] matlab中用工具箱得到拟合函数,重新定义后求值作图,结果与cftool中图形不同,why

我用cftool工具箱中根据数据y vs x拟合得到多项式函数g1,并导出到workspace中。在空间中,计算g1在x=[33.6e-9:2e-10:118.2e-9] 上函数值,得到图1,见附件,
然后,我用句柄重新定义该函数,此函数为
    myfun1 =
    @(t)((-5.833e+059)*t.^8+(3.836e+053)*t.^7+(-1.087e+047)*t.^6+(1.732e+040)*t.^5+(-1.692e+033)*t.^4+(1.035e+026)*t.^3+(-3.854e+018)*t.^2+(7.923e+010)*t-678.3)
再计算myfun1(x),得图2.见附件。
图1,图2是同一个函数在同一个集合上的函数值,图像却很不同。请各位大神帮助我找到其中的原因。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaojunwan

新虫 (小有名气)

刚忘了贴附件,现在补上。
matlab中用工具箱得到拟合函数,重新定义后求值作图,结果与cftool中图形不同,why
图1.jpg


matlab中用工具箱得到拟合函数,重新定义后求值作图,结果与cftool中图形不同,why-1
图2.jpg

2楼2013-05-24 13:58:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nono2009

超级版主 (文学泰斗)

No gains, no pains.

优秀区长优秀区长优秀区长优秀区长优秀版主

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
xiaojunwan: 金币+15, ★★★很有帮助, 希望您说的再详细深入一些。 2013-05-24 17:52:15
ben_ladeng: 金币+3, 欢迎常来,3层回答共计奖励3个金币 2013-05-24 22:22:49
可能是系数的有效位数太少了。系数那么大,而最后的函数值很小。。。
3楼2013-05-24 14:02:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaojunwan

新虫 (小有名气)

引用回帖:
3楼: Originally posted by nono2009 at 2013-05-24 14:02:54
可能是系数的有效位数太少了。系数那么大,而最后的函数值很小。。。

源数据就是这样的,我奇怪为什么重新定义函数后,与拟合时的图像不一样,明明是一个函数啊
4楼2013-05-24 15:06:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nono2009

超级版主 (文学泰斗)

No gains, no pains.

优秀区长优秀区长优秀区长优秀区长优秀版主

【答案】应助回帖


xiegangmai: 金币+1, 谢谢参与! 2013-05-26 14:03:46
引用回帖:
4楼: Originally posted by xiaojunwan at 2013-05-24 15:06:18
源数据就是这样的,我奇怪为什么重新定义函数后,与拟合时的图像不一样,明明是一个函数啊...

format long后再试试你就明白了
5楼2013-05-24 15:30:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaojunwan

新虫 (小有名气)

引用回帖:
5楼: Originally posted by nono2009 at 2013-05-24 15:30:32
format long后再试试你就明白了...

您是说,其实不是一个函数?因为系数的格式不一样吗?我在定义符号函数时也发现:仍是这个函数,符号函数显示出的系数位数很多。麻烦您再指点一下。
6楼2013-05-24 17:40:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaojunwan

新虫 (小有名气)

引用回帖:
3楼: Originally posted by nono2009 at 2013-05-24 14:02:54
可能是系数的有效位数太少了。系数那么大,而最后的函数值很小。。。

如果将函数值(只源数据中的y值)乘以倍数,再拟合,是不是可以避免这种状况?
7楼2013-05-24 18:11:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nono2009

超级版主 (文学泰斗)

No gains, no pains.

优秀区长优秀区长优秀区长优秀区长优秀版主

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★
xiaojunwan: 金币+5, 有帮助 2013-05-24 22:15:43
xiegangmai: 金币+2, 谢谢参与! 2013-05-26 14:03:53
你现在的系数,例如-5.833e+059,只有4位有效数字。建议改成比较多的位数试试看。
举个简单的例子:
(5.06 - 5.04)*100 = 2
但如果只用两位有效数字近似,就变成了
(5.1 - 5.0)*100 = 10

在MATLAB中,format long是双精度计算,你看看帮助文件就知道了。
8楼2013-05-24 19:27:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaojunwan

新虫 (小有名气)

引用回帖:
8楼: Originally posted by nono2009 at 2013-05-24 19:27:21
你现在的系数,例如-5.833e+059,只有4位有效数字。建议改成比较多的位数试试看。
举个简单的例子:
(5.06 - 5.04)*100 = 2
但如果只用两位有效数字近似,就变成了
(5.1 - 5.0)*100 = 10

在MATLAB中,format ...

多谢了
9楼2013-05-24 22:16:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wartenhx

铜虫 (初入文坛)

您好,不知道您还在么,想咨询下,cftool拟合后想知道具体拟合的函数值怎么办?感觉倒入到工作区行不通啊

发自小木虫IOS客户端
10楼2017-04-20 16:28:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xiaojunwan 的主题更新
信息提示
请填处理意见