gobetter的个人博客分享 http://blog.sciencenet.cn/u/gobetter

博文

parker太阳风解-MATLAB实现

已有 4456 次阅读 2015-1-7 17:54 |个人分类:编程|系统分类:科普集锦| parker太阳风解

  参考文献“New views of solar wind with the Lambert W function" by Steven R.Cranmer,精读SectionIV.THE parker solar wind promblem部分,利用Lambert函数来求解太阳风等温模型Equations 13-16,以图表显示太阳风解,由于采用了近似函数,所以部分解计算值为负,无法显示。



源代码:

clear;

K=1.38*10^(-23)

T=[0.1*10^6,0.2*10^6,0.5*10^6,1*10^6,2*10^6,5*10^6]

m=1.6726231*10^(-27)

RT=K*T/m

Vc=sqrt(RT)

a=Vc

G=6.67*10^(-11)

M=1.989*10^30

sunR=6.96*10^8

e=exp(1)

for m=1:1:6

   rc(m)=G*M/(2*Vc(m)^2)

   for i=1:1:200

       r=sunR*i

       D(m)=(r/rc(m))^(-4)*exp(4*(1-rc(m)/r)-1)

       if r<=rc

          u(m,i)=sqrt(-a(m)^2*(-1+sqrt(2-2*e*D(m))))/1000

       else

          u(m,i)=sqrt(-a(m)^2*(-1-sqrt(2-2*e*D(m))))/1000

       end

    end

end

figure(1);

l=1:1:200;

%画图

plot(l,u(1,:),'g',l,u(2,:),'b',l,u(3,:),'k',l,u(4,:),'r',l,u(5,:),'y',l,u(6,:),'c');

set(gca,'xscale','log');

set(gca,'yscale','log');

legend('T=0.1','T=0.2','T=0.5','T=1','T=2','T=5');

grid;

title('parker太阳风解');

xlabel('r/R');ylabel('u');

hold on;

%标记临界点

plot(rc(1)/sunR,Vc(1)/1000,'go',rc(2)/sunR,Vc(2)/1000,'bo',rc(3)/sunR,Vc(3)/1000,'ko',rc(4)/sunR,Vc(4)/1000,'ro',rc(5)/sunR,Vc(5)/1000,'yo',rc(6)/sunR,Vc(6)/1000,'co');

hold off;


 






https://blog.sciencenet.cn/blog-2292236-857301.html

上一篇:以Ruge函数为例使用lagrange插值方法展现Runge现象(matlab)
下一篇:日球层电流片matlab成图
收藏 IP: 111.200.118.*| 热度|

1 陆泽橼

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-23 20:30

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部