问题:赤尾:今益求精,头头事到\n红米:赢得优良\n中兴:恭喜中国足球,今天看自个儿的\n金立科学和技术:只要有1%的恐怕,大家就有9玖%的信奉\n戴尔:追寻独占鳌头,就是负担1四亿可望,毫不妥协\n安踏体育:一时翻脸不及翻身\n恰恰食品:国“仁”骄傲\n……\n

“增长速度是GDP的3倍! 高盛:未来华夏的投资机遇在那四大行当\n3小时前 
\n\n曹泽熙 小说总量 21玖篇\n+
关注\n摘要:在华夏,值得投资的不单有BATJ,还会有新兴工业、新消费和临床健康等重重家底。\n*本文来源华尔街视线(微信ID:wallstreetcn),作者曹泽熙。越多赏心悦目资源音讯请登录wallstreetcn.com,或下载华尔街见闻APP。*\n\n高盛把最近几年来中夏族民共和国的变通归纳为1个定义:“新的华夏”(New
China),在这些概念中,新兴工业、网络、新消费和平常行业是值得关怀的投资机遇。\n\n高盛推断,那四大行当的均匀拉长大致为伍分一,大概是神州GDP年增长速度的三倍。\n\n高盛将各类行业又分开了2-2个行当,并依靠分歧行当的影响力进行了赋权:\n\n\n新兴工业占比二1%(个中高级制造业占八%,IT创造业占玖%,清洁能源占三%);新消费占比3二%(其香港(Hong Kong)中华电力有限公司动小车占贰%,娱乐行业占1四%,教育行业占1陆%);网络占二一%(其Hong Kong中华电力有限集团商、游戏占壹伍%,网络经济占陆%);健康行当占二六%(当中医治常规服务占1九%,诊治保障占七%)。\n那四大行当有哪些特点吗?\n\n首先,增进将几次三番维持强有力。在过去三年中,那第四次全国代表大会行业的年复合增加率为18%,高于GDP年复合拉长率捌%。大家认为,在以后,这四大行当的年复合增进率将达1玖%。\n\n\n第3,不止局限在网络领域。中夏族民共和国的互联网和技巧集团吸引了成都百货上千投资者目光。不过,大家只授予了互连网2贰%的权重。除了网络,包罗了十2二日游、旅游、教育等在内的新消费,以及健康产业和流行工业行当等等,比重都比表现抢眼的互连网集团大。\n\n\n第一,不相同于“新经济”。网络和后来工业的百分比占到了5一%,而符合规律行业和新消费的增进率约为①五%,那和“新经济”的定义差异。\n\n\n第伍,增加不要仅仅是量的进步。那四大行当不满足于夺取愈来愈多的市镇份额,同不经常候还在商海上富有越来越大的话语权,并在股票总值链中处于更加高等的没有。\n\n最后,有投机的周期和逻辑。那四大行当的增高受到经济周期的影响相当小,有自身的拉长周期。\n\n\n从宏观经济的角度来精晓那第四次全国代表大会行当,最简便易行的主意实在把宏观经济数据拆分为第2、二、三家当,以及投资和出口。之所以那四大行当能形成华夏的朝阳行当,高盛以为,首要依据以下多少个要素:\n\n首先,二零一二年以来,第第二行业业的增长速度超越第三行业:\n\n\n第贰,中中原人民共和国消费者的消费行为产生鲜明改动,网购正在吞噬越来越多的线下购物商场份额:\n\n\n第二,越来越多的“软基本建设”(水务、教育、医治、文娱体育)落地,拉动中中原人民共和国新消费:\n\n\n第陆,在开口方面,中中原人民共和国的低附加值产品出口比重下落,高附加值产品出口比重返升:\n\n\n其它,中中原人民共和国政坛也可能有1雨后玉兰片计划促进这四大行当的前进。\n\n包含2011年就写入“十二5”规划的7大新兴行业;20一三年国家总计局引进的四个总计门类:高科技(science and technology)成立业和高科技(science and technology)服务业,重视注重于研究开发投入;中华夏族民共和国还在20一5年提议了“中中原人民共和国创立2025”安顿,希望增加创建业水平;二零一九年,国务院还公布了惹事生非人工智能发展的连锁设计,希望在成立业、农业、金融、教育以及行政事务等地方公布人工智能的功能。\n\n宏观数据表现优异、还大概有政策援助,那四大行当升高现状如何?\n\n高盛从以下多个地点举办了分析:\n\n第1,智力资本。研究开发投入是一向反映智力资本投入的数额。20一5年,中夏族民共和国在研究开发方面包车型大巴投入差不离占到了GDP的2%,同大多昌盛经济体分外。专利申请方面,2015年,中华夏族民共和国申请专利数占到了海内外的29%,已经超(Jing Chao)过欧洲,并和美利坚联邦合众国一定。\n\n第一,人力资本。中中原人民共和国特别重教投入,二零一六年的启蒙投入大约占GDP的3%。短期的教育投入让中中原人民共和国全体丰满的工程本事人力财富。\n\n第3,基础设备建设。在过去10年中,中华夏族民共和国高科学和技术行业主旨建设年复合拉长率达一三%。”

求解难点

Write a program to solve the following ordinary differential
equation by

  • basic Euler method
  • improved Euler method
  • four-order Runge-Kutta method

9992019银河国际 1=3%20%5Cend%7Bcases%7D%20x%5Cin%5B0,%201.5%5D)

and calculate y(1.5) with stepsize=0.1, 0.1/2, 0.1/4, 0.1/8

Compare it with analytic solution (in figure)

9992019银河国际 2%20=%20%5Cdfrac%7B3%7D%7B1+x%5E3%7D)

回答:

主程序

program main
    use ODE
    implicit none
    real :: x0=0.0,y0=3.0,a=0.0,b=1.5,h=0.1
    integer :: n,i,j
    character(len=512) :: filename


    print *,'The analytic solution of y(1.5)= ',analytic_solution(1.5)
    print *

    print *,'Basic Euler Method'
    print '(5x,a,f3.1,3x,a,f3.1,3x,a,f3.1,3x,a,f3.1)','Set initial  x0= ',x0,'y0= ',y0,'a= ',a,'b= ',b
    do j=0,3
        h=0.1/2**j
        print '(5x,a,f6.4)','Set h= ',h
        call init(x0,y0,a,b,h)
        n=size(x)-1
        call Basic_Euler
        print '(8x,a,f10.8)','y(1.5)= ',y(n)
        write(filename, *) j
        filename='BEM_'//Trim(AdjustL(filename))//'.txt'
        open(101,file=filename)
        write(101,'(f3.1,f10.8)') (x(i),y(i),i=0,n)
        close(101)
        deallocate(x,y)
    end do
    print *

    print *,'Improved Euler Method'
    print '(5x,a,f3.1,3x,a,f3.1,3x,a,f3.1,3x,a,f3.1)','Set initial  x0= ',x0,'y0= ',y0,'a= ',a,'b= ',b
    do j=0,3
        h=0.1/2**j
        print '(5x,a,f6.4)','Set h= ',h
        call init(x0,y0,a,b,h)
        n=size(x)-1
        call Improved_Euler
        print '(8x,a,f10.8)','y(1.5)= ',y(n)
        write(filename, *) j
        filename='IEM_'//Trim(AdjustL(filename))//'.txt'
        open(101,file=filename)
        write(101,'(f3.1,f10.8)') (x(i),y(i),i=0,n)
        close(101)
        deallocate(x,y)
    end do
    print *

    print *,'Four Order Runge-Kutta Method'
    print '(5x,a,f3.1,3x,a,f3.1,3x,a,f3.1,3x,a,f3.1)','Set initial  x0= ',x0,'y0= ',y0,'a= ',a,'b= ',b
    do j=0,3
        h=0.1/2**j
        print '(5x,a,f6.4)','Set h= ',h
        call init(x0,y0,a,b,h)
        n=size(x)-1
        call Four_Order_Runge_Kutta
        print '(8x,a,f10.8)','y(1.5)= ',y(n)
        write(filename, *) j
        filename='RKM_'//Trim(AdjustL(filename))//'.txt'
        open(101,file=filename)
        write(101,'(f3.1,f10.8)') (x(i),y(i),i=0,n)
        close(101)
        deallocate(x,y)
    end do
    print *

end program main

求解ODE方程的严重性措施写在ODE模块中:

module ODE
    implicit none
    private
    public :: x,y,init,Basic_Euler,Improved_Euler,Four_Order_Runge_Kutta,analytic_solution

    real,allocatable :: x(:),y(:)
    real :: x0,y0,a,b,h
    integer :: n,i

contains

    function f(x,y)
        implicit none
        real :: f,x,y
        f=-x*x*y*y
    end function f

    function analytic_solution(x) result(f)
        implicit none
        real :: f,x
        f=3.0/(1+x*x*x)
    end function

    subroutine init(x0_,y0_,a_,b_,h_)
        implicit none
        real :: x0_,y0_,a_,b_,h_
        x0=x0_
        y0=y0_
        a=a_
        b=b_
        h=h_
        n=int((b-a)/h)
        allocate(x(0:n),y(0:n))
        x=(/ (a+i*h,i=0,n) /)
        y=0
        y(0)=y0
    end subroutine init

    subroutine Basic_Euler()
        implicit none
        do i=1,n
            y(i)=y(i-1)+h*f(x(i-1),y(i-1))
        end do
    end subroutine Basic_Euler

    subroutine Improved_Euler()
        implicit none
        real :: y_
        do i=1,n
            y_=y(i-1)+h*f(x(i-1),y(i-1))
            y(i)=y(i-1)+h/2*(f(x(i-1),y(i-1))+f(x(i),y_))
        end do
    end subroutine Improved_Euler

    subroutine Four_Order_Runge_Kutta()
        implicit none
        real :: k1,k2,k3,k4
        do i=1,n
            k1=f(x(i-1),y(i-1))
            k2=f(x(i-1)+h/2,y(i-1)+h/2*k1)
            k3=f(x(i-1)+h/2,y(i-1)+h/2*k2)
            k4=f(x(i-1)+h,y(i-1)+h*k3)
            y(i)=y(i-1)+h/6*(k1+2*k2+2*k3+k4)
        end do
    end subroutine Four_Order_Runge_Kutta
end module ODE

其中init措施是用来初阶化:

    subroutine init(x0_,y0_,a_,b_,h_)
        implicit none
        real :: x0_,y0_,a_,b_,h_
        x0=x0_
        y0=y0_
        a=a_
        b=b_
        h=h_
        n=int((b-a)/h)
        allocate(x(0:n),y(0:n))
        x=(/ (a+i*h,i=0,n) /)
        y=0
        y(0)=y0
    end subroutine init

analytic_solution是数值解:

    function analytic_solution(x) result(f)
        implicit none
        real :: f,x
        f=3.0/(1+x*x*x)
    end function

相关文章