声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1536|回复: 9

[编程技巧] 有多项式系数怎么才能把它当方程用

[复制链接]
发表于 2014-3-24 02:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

回复
分享到:

使用道具 举报

发表于 2014-3-24 12:22 | 显示全部楼层
由于没有LZ的数据,我就以一个简单实例说明(1次拟合)。数据:x=[1 2 3 4 5 6 7 8 9 10];y=[1 3 11 12 28 32 45 70 80 104];程序代码:
  1. x=[1 2 3 4 5 6 7 8 9 10];
  2. y=[1 3 11 12 28 32 45 70 80 104];
  3. a=polyfit(x,y,1);
  4. y=a(1).*x+a(2);
复制代码

运行结果:
1.png
 楼主| 发表于 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),发现数字是跟计算器一样了,可是都是负的。郁闷死我了

点评

就像你之前做的,你可以进行5次拟合,只是把我给你的程序代码改一下就可以了,运行结果应该会比较理想的。  发表于 2014-3-24 17:54
发表于 2014-3-24 16:21 | 显示全部楼层
713753 发表于 2014-3-24 15:18
Strain
-----------
  0.00000000

毕竟是一次线性拟合嘛,误差肯定会很大,你可以再加一条代码,构成新代码:
  1. x=[1 2 3 4 5 6 7 8 9 10];
  2. y=[1 3 11 12 28 32 45 70 80 104];
  3. a=polyfit(x,y,1);
  4. x1=0:0.01:10;y1=a(1).*x1+a(2);
  5. plot(x,y,'*',x1,y1,'-r');%y1为拟合数据;y为真实数据。
复制代码

这样就可以对比一下,真实数据与拟合数据的差异了!!!

点评

赞成: 5.0
赞成: 5
解答很到位!!  发表于 2014-3-25 20:05
回复 支持 1 反对 0

使用道具 举报

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

谢谢你的指导!
发表于 2014-3-25 10:21 | 显示全部楼层
polyfit  拟合
polyval 反代算估计值就可以了

点评

赞成: 3.0
赞成: 3
回复具有一定的启发引导性  发表于 2014-3-25 11:37
发表于 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);
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-23 20:31 , Processed in 0.118059 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表