将人口死亡率分为趋势项与周期项 ,用matlab如何对数据进行处理,趋势项可看为负指数分布,周期项三角函
来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/07/08 11:38:42
将人口死亡率分为趋势项与周期项 ,用matlab如何对数据进行处理,趋势项可看为负指数分布,周期项三角函
t为年份,y为年死亡率;t=[1978:2009];
y=[0.02 0.018 0.0178 0.017 0.014 0.01318 0.01228 0.0114 0.0108 0.01198 0.01459 0.01791 0.01424 0.01002 0.01211 0.0115 0.0095 0.00883 0.00843 0.00821 0.00803 0.0076 0.00732 0.00761 0.00704 0.00734 0.00732 0.00725 0.00687 0.00625 0.00621 0.00634 0.00636 0.0066 0.0069 0.00682 0.00678 0.00686 0.00672 0.00664 0.00654 0.00667 0.0067 0.00664 0.00664 0.00649 0.00657 0.00656 0.00651 0.0065 0.00646 0.00645 0.00643 0.00641 0.0064 0.00642 0.00651 0.00681 0.00693 0.00706 0.00708];
t为年份,y为年死亡率;t=[1978:2009];
y=[0.02 0.018 0.0178 0.017 0.014 0.01318 0.01228 0.0114 0.0108 0.01198 0.01459 0.01791 0.01424 0.01002 0.01211 0.0115 0.0095 0.00883 0.00843 0.00821 0.00803 0.0076 0.00732 0.00761 0.00704 0.00734 0.00732 0.00725 0.00687 0.00625 0.00621 0.00634 0.00636 0.0066 0.0069 0.00682 0.00678 0.00686 0.00672 0.00664 0.00654 0.00667 0.0067 0.00664 0.00664 0.00649 0.00657 0.00656 0.00651 0.0065 0.00646 0.00645 0.00643 0.00641 0.0064 0.00642 0.00651 0.00681 0.00693 0.00706 0.00708];
要用非线性最小二乘拟合lsqcurvefit:
首先编写假设的函数:
function F=myfun(x,xdata)
F=x(1)*cos(x(2)*xdata)+x(3)*exp(-x(4)*xdata);
其中 x(1),x(2)...为要拟合出来参数
再进行拟合,用年份做变量不太方便,我改了一下,你可以改回来
t=0.5:0.5:30.5;
t=t';
y=[0.02 0.018 0.0178 0.017 0.014 0.01318 0.01228 0.0114 0.0108 0.01198 0.01459 0.01791 0.01424 0.01002 0.01211 0.0115 0.0095 0.00883 0.00843 0.00821 0.00803 0.0076 0.00732 0.00761 0.00704 0.00734 0.00732 0.00725 0.00687 0.00625 0.00621 0.00634 0.00636 0.0066 0.0069 0.00682 0.00678 0.00686 0.00672 0.00664 0.00654 0.00667 0.0067 0.00664 0.00664 0.00649 0.00657 0.00656 0.00651 0.0065 0.00646 0.00645 0.00643 0.00641 0.0064 0.00642 0.00651 0.00681 0.00693 0.00706 0.00708]';
x=lsqcurvefit(@myfun,[2 1 0.01 0.04],t,y) %第二项那个向量是迭代的初始值,你可以自己反复试,直到图像符合,而且算出来的x比较稳定时,即为你要的解.
y1=x(1)*cos(x(2)*t)+x(3)*exp(-x(4)*t);
plot(t,y,'or',t,y1,'b-')
再问: 怎么运行不了啊,求详细过程 ??? Undefined function or variable "t". Error in ==> lsqcurvefit at 149 [t,Resnorm,FVAL,EXITFLAG,OUTPUT,LAMBDA,JACOB] = ... 神马意思,先谢谢了
再答: 你把我写的从t=0.5:0.5:30.5;。。。。开始全部复制粘贴过去呀 你没有定义t,所以才会??? Undefined function or variable "t". 这个t就相当于你的年份呀
再问: 可是我确实定义了t,还把xdata改为t试了一下,就是出错。。。
再答: 你有没有把 function F=myfun(x,xdata) F=x(1)*cos(x(2)*xdata)+x(3)*exp(-x(4)*xdata); 单独写成一个m文件? 你给我留言吧,再追问要扣分了
首先编写假设的函数:
function F=myfun(x,xdata)
F=x(1)*cos(x(2)*xdata)+x(3)*exp(-x(4)*xdata);
其中 x(1),x(2)...为要拟合出来参数
再进行拟合,用年份做变量不太方便,我改了一下,你可以改回来
t=0.5:0.5:30.5;
t=t';
y=[0.02 0.018 0.0178 0.017 0.014 0.01318 0.01228 0.0114 0.0108 0.01198 0.01459 0.01791 0.01424 0.01002 0.01211 0.0115 0.0095 0.00883 0.00843 0.00821 0.00803 0.0076 0.00732 0.00761 0.00704 0.00734 0.00732 0.00725 0.00687 0.00625 0.00621 0.00634 0.00636 0.0066 0.0069 0.00682 0.00678 0.00686 0.00672 0.00664 0.00654 0.00667 0.0067 0.00664 0.00664 0.00649 0.00657 0.00656 0.00651 0.0065 0.00646 0.00645 0.00643 0.00641 0.0064 0.00642 0.00651 0.00681 0.00693 0.00706 0.00708]';
x=lsqcurvefit(@myfun,[2 1 0.01 0.04],t,y) %第二项那个向量是迭代的初始值,你可以自己反复试,直到图像符合,而且算出来的x比较稳定时,即为你要的解.
y1=x(1)*cos(x(2)*t)+x(3)*exp(-x(4)*t);
plot(t,y,'or',t,y1,'b-')
再问: 怎么运行不了啊,求详细过程 ??? Undefined function or variable "t". Error in ==> lsqcurvefit at 149 [t,Resnorm,FVAL,EXITFLAG,OUTPUT,LAMBDA,JACOB] = ... 神马意思,先谢谢了
再答: 你把我写的从t=0.5:0.5:30.5;。。。。开始全部复制粘贴过去呀 你没有定义t,所以才会??? Undefined function or variable "t". 这个t就相当于你的年份呀
再问: 可是我确实定义了t,还把xdata改为t试了一下,就是出错。。。
再答: 你有没有把 function F=myfun(x,xdata) F=x(1)*cos(x(2)*xdata)+x(3)*exp(-x(4)*xdata); 单独写成一个m文件? 你给我留言吧,再追问要扣分了
如何利用SPSS进行数据的集中趋势与离散程度分析
一组数据,如何在Matlab里进行画图,时间--周期图?
编写MATLAB程序.能够将x[n]以N = 8为周期进行周期延拓得到一个周期为N =8的周期序列y[n]
怎么用matlab将周期方波信号转换为十进制?
Matlab如何将一列中的数据剔除重复项呢?
英语翻译本课题致力于江苏省人口现状与特征的分析,对江苏省人口发展的趋势进行预测分析,提出相应的调控政策.通过对江苏省人口
如何利用matlab处理图像对图像进行以下处理:
用matlab对数据进行标准化处理后,用什么函数能·再返回得到原来的数据呢?
EXCEL计算出趋势线后如何导出趋势线公式,并用其计算数据?
用MATLAB对离散数据进行积分
2000年世界人口为60亿,目前世界人口增长率约为1.84%,如果这趋势保持不变,哪一年世界人口将达到120亿?
中国人口变化趋势是什么