24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2670  |  回复: 8
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

百里道

木虫 (初入文坛)

[求助] matlab中二维图作图

已经作了温度关于时间和坐标的三维图,怎么做某一具体时刻的温度-位移图?
没有搜到这个,只好求救了。。
回复此楼
==
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

百里道

木虫 (初入文坛)

引用回帖:
4楼: Originally posted by jinniu82 at 2012-03-30 11:24:03:
图片只是输出的一种方式,把代码中的输出部分的相关数据画出来不就行了,不行的话把代码放上来,研究研究

function yiweifourier
c=1;
%Phi=10;
Lambda=10;
qw=-10;
%d=Phi/Lambda;
d=@(x)x^2;g=@(t)exp(t);
e=qw/Lambda;
xspan=[0 1];
tspan=[0 0.5];
ngrid=[100 10];
f=@(x)4*x;
[T,x,t]=rechuandao(c,d,e,g,f,xspan,tspan,ngrid);
[x,t]=meshgrid(x,t);
mesh(x,t,T);
xlabel('x')
ylabel('t')
zlabel('T')

function [U,x,t]=rechuandao(c,d,e,g,f,xspan,tspan,ngrid)
n=ngrid(1);
m=ngrid(2);
h=range(xspan)/(m-1);
x=linspace(xspan(1),xspan(2),m);
k=range(tspan)/(n-1);
t=linspace(tspan(1),tspan(2),n);

r=c^2*k/h^2;
if r>0.5
  error('<为了保证算法的收敛,请增大步长h或减小步长k!')
end
s=1-2*r;
s2=e*h;
U=zeros(ngrid);
for i=1:m
  U(1,i)=f(x(i));
end
for j=2:n
  for i=2:m-1
U1(j,i)=d(x(i));U2(j,i)=g(t(j));
    U(j,i)=s*U(j-1,i)+r*(U(j-1,i-1)+U(j-1,i+1))+50*U1(j,i)*U2(j,i);
  end
%%%%%%%下面是边界条件
    U(j,1)=s2+U(j,2);%定热流边界条件
    U(j,m)=U(j,m-1);%绝热边界条件
end
==
6楼2012-04-04 21:04:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 9 个回答

jinniu82

铁杆木虫 (正式写手)

【答案】应助回帖


感谢参与,应助指数 +1
xiegangmai: 金币+1, 谢谢参与! 2012-03-30 09:54:36
找到具体某一时刻的温度和位移的数据,将其中的一组(温度或位移)作为x轴,另外一组作y轴就可以画出来啦
一碟咸菜一根葱,两只窝头一碗粥
2楼2012-03-30 08:12:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

百里道

木虫 (初入文坛)

引用回帖:
2楼: Originally posted by jinniu82 at 2012-03-30 08:12:45:
找到具体某一时刻的温度和位移的数据,将其中的一组(温度或位移)作为x轴,另外一组作y轴就可以画出来啦

三维图是通过网格化x轴和时间轴(100*10的网格),根据迭代公式做出温度分布图的。我的意思是能不能由已经做好的三维图直接抽取某一时刻的二维图,有没有相关的命令或其他模式?
==
3楼2012-03-30 08:50:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jinniu82

铁杆木虫 (正式写手)

【答案】应助回帖


xiegangmai: 金币+1, 谢谢参与! 2012-03-30 12:34:53
图片只是输出的一种方式,把代码中的输出部分的相关数据画出来不就行了,不行的话把代码放上来,研究研究
一碟咸菜一根葱,两只窝头一碗粥
4楼2012-03-30 11:24:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见