matlab运行后结果重复,[MATLAB基础] 为什么我的计算结果中重复显示某个变量的值?...

icon1.gif 为什么我的计算结果中重复显示某个变量的值?

下面这个程序是某本参考书上面的(解一维抛物线型偏微分方程),我照着输入到Matlab6.5中,当我在命令窗口中输入ex0903来计算的时候,计算结果中却重复显示M=50,这是什么原因啊?开始以为是代码中误把分号写成了逗号,但是检查了一下,也没有啊。偶是新手,请达人指教!

function [u,x,t]=EF_Euler(A,xf,T,it0,bx0,bxf,M,N)

%解方程 A u_xx = u_t,0<=x<=xf,0<=t<=T

%初始条件:u(x,0)=it0(x)

%边界条件:u(0,t)=bx0(t),u(xf,t)=bxf(t)

%M:x轴的等分段数

%N:t轴的等分段数

dx=xf/M;x=[0:M]*dx;

dt=T/N;t=[0:N]*dt;

for i=1:M+1

u(i,1)=it0(x(i));

end

for n=1:N+1

u([1,M+1],n)=[bx0(t(n));bxf(t(n))];

end

r=A*dt/dx/dx;r1=1-2*r;

if (r>0.5)

disp('r>0.5,unstability');

end

for k=1:N %从k开始

for i=2;M %从i-1开始

u(i,k+1)=r*(u(i+1,k)+u(i-1,k))+r1*u(i,k);

end

end

function ex0903()

%调用函数EF_Euler解热传导方程

A=0.5; %方程系数

it0=inline('sin(pi*x)','x'); %初始条件

bx0=inline('0');bxf=inline('0'); %边界条件

xf=2;M=50;T=0.1;N=100;

[u1,x,t]=EF_Euler(A,xf,T,it0,bx0,bxf,M,N);

figure(1),clf,mesh(t,x,u1)

xlabel('x')

ylabel('y')

zlabel('U')

title('x>0.5')

figure(2),clf,mesh(t,x,u1)

xlabel('x')

ylabel('y')

zlabel('U')

title('x<0.5')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值