MATLAB虚实线结合图

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);

//写的第一篇文章,希望后面多多益善。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值