目录
💥1 概述
📚2 运行结果
🎉3 参考文献
👨💻4 Matlab代码
💥1 概述
18世纪60年代从英国发起的第一次工业革命是技术发展史上的一次巨大革命,它开创了以机器代替手工劳动的时代,但是也伴随着化石燃料的大规模开采和使用,碳排放量急剧增加,破坏了自然的碳循环,对环境造成严重危害。对于富含碳的化石燃料而言,它们本来是被储存在地下,本不会成为碳排放的一部分,但是由于人们从地下大量开采化石燃料,并通过燃烧将它们引入到自然的碳循环中。如果没有人为的影响,自然的碳循环应该保持在接近平衡的状态。本章的分析目标就是分析人类对大气中二氧化碳排放量的影响,预测低层大气中的人为碳排放量。
📚2 运行结果
主函数部分代码:
clear all close all load average1.mat ydata=M(:,2); xdata = M(:,1); ell=length(M(:,1)); %---------------------------- %Consider looking at different chunks of data %1750 to 1912 %1912-1950 %1950-2017 %---------------------------- %for 1950-2017 [indx]=find(xdata==1950) ydata=M(indx:ell,2); xdata = M(indx:ell,1); %---------------------------- %Option 1: Build system of ln of equation,b= write-up %---------------------------- lnydata=log(ydata); ell=length(ydata); A=ones(ell,2); A(:,2)=xdata; parm=A\lnydata; c1=exp(parm(1)) r1=parm(2) fun = @(x)x(1)*exp(x(2)*xdata); Y=fun([c1 r1]); plot(xdata,ydata,'*',xdata,Y,'linewidth',1) title('Direct solve of over determined system') xlabel('t') ylabel('Emissions') %--------------------------- %Comment: A piecewise function may may more sense. %--------------------------- %Option 2 %--------------------------- % fun = @(x)x(1)*exp(x(2)*xdata); x0 = [1e-8, 0.20]; options = optimoptions(@lsqnonlin,'Algorithm','trust-region-reflective'); x = lsqnonlin(@(x) res(x,xdata,ydata),x0); [x,fval,exitflag,output] = fminsearch(@(x) res(x,xdata,ydata),x0) figure Y=fun(x); plot(xdata,ydata,'o',xdata,Y,'linewidth',1) title('fminsearch') xlabel('t') ylabel('Emissions') %--------------------------- %Option 3 %--------------------------- % % fun = @(x)x(1)*exp(x(2)*xdata); % x0 = [1, 1]; % %options = optimoptions(@lsqnonlin,'Algorithm','trust-region-reflective'); % %x = lsqnonlin(@(x) res(x,xdata,ydata),x0); % [x,fval,exitflag,output] = lsqnonlin(@(x) Res(x,xdata,ydata),x0) % % figure % Y=fun(x); % plot(xdata,ydata,'o',xdata,Y,'linewidth',1) % title('lsqnonlin') % xlabel('t') % ylabel('Emissions') % % function F=res(x,xdata,ydata) %for fminsearch %What is the residual that you want to minimize? fun = @(x)x(1)*exp(x(2)*xdata); Y=fun(x); %F=0.5*(norm(ydata-Y))^2; %F=sum((ydata-Y).^2); F=(norm(ydata-Y)); end function F=Res(x,xdata,ydata) %for lsqnonlin %What is the residual that you want ot minimize? fun = @(x)x(1)*exp(x(2)*xdata); Y=fun(x); %F=0.5*(norm(ydata-Y))^2; F=(ydata-Y); end
🎉3 参考文献
[1]林伯强,蒋竺均.中国二氧化碳的环境库兹涅茨曲线预测及影响因素分析[J].管理世界,2009(04):27-36.
部分理论引用网络文献,若有侵权联系博主删除。