Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-03-25, 15:57   #1
xxc7902
初级会员
 
注册日期: 2009-03-25
年龄: 46
帖子: 1
声望力: 0
xxc7902 正向着好的方向发展
默认 [求助]我有一组数据如何画图

已知x=[0.7 0.1312 0.02685 0.00943 0.0033]
y=[0.3636 0.1682 0.4741 1.2704 2.07]
拟合方程为y=ax^b
如何求a和b,求出后如何画出y=ax^b的图像
xxc7902 当前离线   回复时引用此帖
旧 2009-03-25, 16:40   #2
slgu
高级会员
 
注册日期: 2007-06-24
年龄: 70
帖子: 188
声望力: 21
slgu 正向着好的方向发展
默认 回复: [求助]我有一组数据如何画图

x=[0.7 0.1312 0.02685 0.00943 0.0033];
y=[0.3636 0.1682 0.4741 1.2704 2.07];
fx=@(b,x)b(1)*x.^b(2);
b=rand(1,2);
b=lsqcurvefit(fx,b,x,y)
b=nlinfit(x,y,fx,b)
plot(x,y,'o','markerfacecolor','b')
x1=min(x):range(x)/80:max(x);
y1=fx(b,x1);
hold on
plot(x1,y1,'linewidth',2)
slgu 当前离线   回复时引用此帖
旧 2009-03-26, 16:20   #3
laosam280
高级会员
 
注册日期: 2008-11-07
住址: 湖南长沙
帖子: 233
声望力: 21
laosam280 正向着好的方向发展
默认 回复: [求助]我有一组数据如何画图

x=[0.7 0.1312 0.02685 0.00943 0.0033];
y=[0.3636 0.1682 0.4741 1.2704 2.07];
plot(x,y,'g-'); hold on
x0=[1 0]';
x=lsqnonlin('myfun',x0)
y1=y(1);
y=a*x.^b;
plot(x,y,'bo-');
%define function myfun,saved at work
function f=myfun(x,y)
x=[0.7 0.1312 0.02685 0.00943 0.0033];
y=[0.3636 0.1682 0.4741 1.2704 2.07];
y1=y(1);
z=y1-x(1)*x.^x(2);
f=z-y;
laosam280 当前离线   回复时引用此帖
旧 2009-03-26, 22:17   #4
chenweibit
初级会员
 
注册日期: 2009-03-11
年龄: 37
帖子: 11
声望力: 17
chenweibit 正向着好的方向发展
默认 回复: [求助]我有一组数据如何画图

用那个polyfit应该可以的吧,先化成log(y)=log(a)+b*log(x)求系数,详见help吧
chenweibit 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 20:03


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.