Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2009-03-25
年龄: 46
帖子: 1
声望力: 0 ![]() |
![]()
已知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的图像 |
![]() |
![]() |
![]() |
#2 |
高级会员
注册日期: 2007-06-24
年龄: 70
帖子: 188
声望力: 21 ![]() |
![]()
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) |
![]() |
![]() |
![]() |
#3 |
高级会员
注册日期: 2008-11-07
住址: 湖南长沙
帖子: 233
声望力: 21 ![]() |
![]()
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; |
![]() |
![]() |
![]() |
#4 |
初级会员
注册日期: 2009-03-11
年龄: 37
帖子: 11
声望力: 17 ![]() |
![]()
用那个polyfit应该可以的吧,先化成log(y)=log(a)+b*log(x)求系数,详见help吧
|
![]() |
![]() |