matlab 拟合曲线作图,为什么我用MATLAB多项式拟合得到的函数,再用函数去作图时两者的曲线会不一样呢?...

为什么我用MATLAB多项式拟合得到的函数,再用函数去作图时两者的曲线会不一样呢?

2018-9-16来自ip:10.170.179.125的网友咨询

浏览量:135

问题补充:

为什么我用MATLAB多项式拟合得到的函数,再用函数去作图时两者的曲线会不一样呢?

clear all

x0=[0 0.5 1 1.5 2 2.5 3 7 8 9 10 11.82 13 14 15 16 17.73 19 20 21 22 23.64 26 27 28 29 29.55];

y0=[1.892e9 1.89e9 1.87e9 1.86e9 1.85e9 1.84e9 1.83e9 3e5 3e5 3.1e5 3e5 2.9e5 2.4e5 2.3e5 2e5 2.2e5 2e5 1.85e5 1.8e5 1.78e5 1.75e5 1.7e5 1.62e5 1.65e5 1.6e5 1.55e5 1.5e5];

p3=polyfit(x0,y0,18);

vpa(poly2sym(p3),5)

x=0:0.1:29.6;

y1=polyval(p3,x);

>> plot(x,y1,x0,y0,'o')

grid on

得到如下函数:

y=1.604*10^(-9)*x^18 - 4.4275*10^(-7)*x^17 + 0.000056159*x^16 - 0.0043377*x^15 + 0.22791*x^14 - 8.6173*x^13 + 241.87*x^12 - 5123.9*x^11 + 82462.0*x^10 - 1.0064*10^6*x^9 + 9.2252*10^6*x^8 - 6.2331*10^7*x^7 + 3.0125*10^8*x^6 - 9.9516*10^8*x^5 + 2.1031*10^9*x^4 - 2.5932*10^9*x^3 + 1.6075*10^9*x^2 - 3.7944*10^8*x + 1.8927*10^9

我再输入

clear all

x=0:0.1:30;

y=1.604e-9*x.^18 - 4.4275e-7*x.^17 + 0.000056159*x.^16 - 0.0043377*x.^15 + 0.22791*x.^14 - 8.6173*x.^13 + 241.87*x.^12 - 5123.9*x.^11 + 82462.0*x.^10 - 1.0064e6*x.^9 + 9.2252e6*x.^8 - 6.2331e7*x.^7 + 3.0125e8*x.^6 - 9.9516e8*x.^5 + 2.1031e9*x.^4 - 2.5932e9*x.^3 + 1.6075e9*x.^2 - 3.7944e8*x+ 1.8927e9;

plot(x,y)

为什么曲线会不一样,我仔细看过只有曲线前一部分会是相同的大概在x小于5.5内是相同的,之后就完全不一样了.请教给位了.实在不明白为什么了.

主要是这个得到的曲线,一部分小于0,我是希望把常数项再变大一些,使得曲线完全在x轴上方。哪知道画出来的曲线完全不是那么回事。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值