matlab如何拟合幂函数y=ax^b的程序
2个回答
展开全部
例7 用下面表6 中的数据拟合函数c(t) = a + be−0.02kt中的参数a,b, k 。
表6
j t 100 200 300 400 500 600 700 800 900 1000
j c 4.54 4.99 5.35 5.65 5.90 6.10 6.26 6.39 6.50 6.59
解 该问题即解最优化问题:
Σ=
− = + −
10
1
0.02 2 min ( , , ) ( )
i
j
kt F a b k a be j c
(1)编写M文件fun1.m定义函数F(x,tdata):
function f=fun1(x,tdata);
f=x(1)+x(2)*exp(-0.02*x(3)*tdata); %其中x(1)=a,x(2)=b,x(3)=k
(2)调用函数lsqcurvefit,编写程序如下:
td=100:100:1000;
cd=[4.54 4.99 5.35 5.65 5.90 6.10 6.26 6.39 6.50 6.59];
x0=[0.2 0.05 0.05];
x=lsqcurvefit(@fun1,x0,td,cd)
表6
j t 100 200 300 400 500 600 700 800 900 1000
j c 4.54 4.99 5.35 5.65 5.90 6.10 6.26 6.39 6.50 6.59
解 该问题即解最优化问题:
Σ=
− = + −
10
1
0.02 2 min ( , , ) ( )
i
j
kt F a b k a be j c
(1)编写M文件fun1.m定义函数F(x,tdata):
function f=fun1(x,tdata);
f=x(1)+x(2)*exp(-0.02*x(3)*tdata); %其中x(1)=a,x(2)=b,x(3)=k
(2)调用函数lsqcurvefit,编写程序如下:
td=100:100:1000;
cd=[4.54 4.99 5.35 5.65 5.90 6.10 6.26 6.39 6.50 6.59];
x0=[0.2 0.05 0.05];
x=lsqcurvefit(@fun1,x0,td,cd)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询