MATLAB虚实线结合图
简介
在计算近藤效应时文章中出现了下面这样一张图:
实线为有解情况,虚线为无解情况。所以,这种图是如何画的呢?
计算和画图
首先对方程进行求解,这里由于存在无解会报错,所以使用try-catch-end:
try
x(i)=solve(exp(-0.21314*power((alpha(i)./k),2)+0.0550*power((alpha(i)./k),4)-0.01655*power((alpha(i)./k),6)+0.005396*power((alpha(i)./k),8)-0.001822*power((alpha(i)./k),10))==k);
catch
x(i)=0;
end
然后分类画后半段虚线:
for i=1:length(alpha)
if x(i)==0
p=i-1;
break;
end
end
plot(alpha(1:p),x(1:p),'k','linewidth',2)
hold on;
plot(alpha(p+1:length(alpha)),x(p+1:length(x)),'k--','linewidth',2)
最后画连接竖线:
plot([alpha(p),alpha(p)],[0,x(p)],'k--','linewidth',2)
最终图像:
我这里没有按照文中的后半段计算,直接取0。
附上MATLAB完整代码:
clear;
alpha=(0:0.1:2);
x=zeros(1,length(alpha));
syms k;
p=0;
for i=1:length(alpha)
try
x(i)=solve(exp(-0.21314*power((alpha(i)./k),2)+0.0550*power((alpha(i)./k),4)-0.01655*power((alpha(i)./k),6) ...
+0.005396*power((alpha(i)./k),8)-0.001822*power((alpha(i)./k),10))==k);
catch
x(i)=0;
end
end
for i=1:length(alpha)
if x(i)==0
p=i-1;
break;
end
end
plot(alpha(1:p),x(1:p),'k','linewidth',2)
hold on;
plot(alpha(p+1:length(alpha)),x(p+1:length(x)),'k--','linewidth',2)
hold on;
plot([alpha(p),alpha(p)],[0,x(p)],'k--','linewidth',2)
xlabel('\alpha')
ylabel('T_k/T_k_0')
set(gca,'FontSize',15);
//写的第一篇文章,希望后面多多益善。