预测低层大气中的人为碳排放(Matlab代码实现)

 👨‍🎓个人主页:研学社的博客    

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥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.​

部分理论引用网络文献,若有侵权联系博主删除。

🌈4 Matlab代码实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荔枝科研社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值