声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3025|回复: 8

[绘图技巧] 关于matlab指数曲线拟合问题

[复制链接]
发表于 2008-3-12 22:32 | 显示全部楼层 |阅读模式

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

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

x
数据为x=[-70 -50 -30 -10 20],y=[0.182 0.219 0.077 0.332 1]
拟合方程为: y=exp[a(x-20)]

两边取对数后 lny=ax-20a

设Y=AX-20A   

X=[-70 -50 -30 -10 20]
Y=[-1.704 -1.519 -2.564 -1.103 0]

得出的是直线


请问:如何把matlab Figure里的直线还原为拟合方程y=exp[a(x-20)]表示的曲线图?






[ 本帖最后由 eight 于 2008-3-13 09:32 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-3-13 09:16 | 显示全部楼层

回复 楼主 的帖子

为什么要取对数以后再画呢
直接画不行吗
 楼主| 发表于 2008-3-13 09:54 | 显示全部楼层

回复 2楼 的帖子

我看了许多资料都是关于多项式拟合的
没有找到关于指数拟合的资料

如果是直接画,该怎样写程序呢呢
发表于 2008-3-13 10:28 | 显示全部楼层

回复 3楼 的帖子

你是拟合曲线

直线方程你和出来后,再两边取e的指数,返回去得到方程,然后再画呢

还有,你的数据是不是有问题啊,误差太大了吧

[ 本帖最后由 sigma665 于 2008-3-13 10:32 编辑 ]
发表于 2008-3-13 10:42 | 显示全部楼层
  1. clear all;clc;


  2. x1=[-70 -50 -30 -10 20];
  3. y1=[-1.704 -1.519 -2.564 -1.103 0];
  4. subplot(121);
  5. plot(x1,y1,'o'); hold on;

  6. p1=polyfit(x1,y1,1);
  7. yy1=polyval(p1,-70:20);
  8. plot(-70:20,yy1,'r');

  9. x=-70:20;
  10. y=exp(p1(1).*x+p1(2));
  11. subplot(122);
  12. plot(x,y)
复制代码
untitled.jpg

评分

1

查看全部评分

 楼主| 发表于 2008-3-13 10:59 | 显示全部楼层

回复 5楼 的帖子

数据没有问题,这个是由试验得到的数据

对了,在上面的曲线图里面,可以加入原始数据的点吧
 楼主| 发表于 2008-3-13 11:01 | 显示全部楼层

回复 5楼 的帖子

原始数据为
x=[-70 -50 -30 -10 20]
y=[0.182 0.219 0.077 0.332 1]
发表于 2008-3-13 12:03 | 显示全部楼层

回复 7楼 的帖子

再加上
hold on;
xx=[-70 -50 -30 -10 20]
yy=[0.182 0.219 0.077 0.332 1]
plot(xx,yy,'o');
 楼主| 发表于 2008-3-13 12:17 | 显示全部楼层

回复 8楼 的帖子

thanks a lot!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-9-23 15:21 , Processed in 0.060429 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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