713753 发表于 2014-3-24 02:33

有多项式系数怎么才能把它当方程用

我有两组数据,每组20个,通过p5 = polyfit(stress, strain, 5)得到了5个系数,但是我还要进行下一步,就是把stress的数据代入这个搞出来的多项式算出新的strain来。可是我不知道该怎么弄,求解救!

牛小贱 发表于 2014-3-24 12:22

由于没有LZ的数据,我就以一个简单实例说明(1次拟合)。数据:x=;y=;程序代码:x=;
y=;
a=polyfit(x,y,1);
y=a(1).*x+a(2);
运行结果:

713753 发表于 2014-3-24 15:18

Strain
-----------
0.00000000
0.00315789
0.00631579
0.00947368
0.01263158
0.01578947
0.01894737
0.02210526
0.02526316
0.02842105
0.03157895
0.03473684
0.03789474
0.04105263
0.04421053
0.04736842
0.05052632
0.05368421
0.05684211
0.06000000

Stress
-----------
0.00000000
1.87218105
4.41940527
19.96877327
30.26986762
29.78992512
41.40984978
42.80806961
50.68700559
64.58842923
76.24891874
82.48528723
76.30356469
86.92924665
103.54713415
97.76213919
118.80971630
118.69893653
116.46481007
136.52398058
这是两组数据,然后我发现用y=a(1).*x+a(2)出来的数据跟我用计算器算出来的数据不一样,所以我用y=a(1).*x不加a(2),发现数字是跟计算器一样了,可是都是负的。郁闷死我了

牛小贱 发表于 2014-3-24 16:21

713753 发表于 2014-3-24 15:18
Strain
-----------
0.00000000


毕竟是一次线性拟合嘛,误差肯定会很大,你可以再加一条代码,构成新代码:x=;
y=;
a=polyfit(x,y,1);
x1=0:0.01:10;y1=a(1).*x1+a(2);
plot(x,y,'*',x1,y1,'-r');%y1为拟合数据;y为真实数据。:
这样就可以对比一下,真实数据与拟合数据的差异了!!!

713753 发表于 2014-3-24 17:49

牛小贱 发表于 2014-3-24 16:21
毕竟是一次线性拟合嘛,误差肯定会很大,你可以再加一条代码,构成新代码::
这样就可以对比一下,真实 ...

谢谢你的指导!

happy 发表于 2014-3-25 10:21

polyfit拟合
polyval 反代算估计值就可以了

江树空 发表于 2014-3-26 14:52

你用的是5次多项式拟合,算出的p5应该是有6个元素的行向量,strain=p5(1)*stress.^5+p5(2)*stress.^4+p5(3)*stress.^3+p5(4)*stress.^2+p5(5)*stress+p5(6);
页: [1]
查看完整版本: 有多项式系数怎么才能把它当方程用