24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2706  |  回复: 0

柱子234

新虫 (小有名气)

[求助] 用MATLAB写了一个解扩散方程的程序,需要修改一下,求大神指导一下!

题是:假设扩散方程du/dt=a du^2/dx^2,(这是偏微分方程,应为打不出那个符号,用dt,dx代替),取dx=pi/15,u(x,0)=sin(x),u(0,t)=0,u(pi,t)=0

现在想修改成du/dt=a du^2/dx^2+u^3+u^5  其他条件不变,想问一下大神下面的M文件和运行命令,该怎么改变?

函数文件:
function y=myfun(~,u)
n=15;
x=zeros(1,n);
x(1)=-2*u(1)+u(2);
x(n-1)=u(n-2)-2*u(n-1);
for i=2:n-2
    x(i)=u(i-1)-2*u(i)+u(i+1);
end
y=x';
End

运行命令:
clc;clear all;format long;
n=15;dpi=pi/n;
x=dpi:dpi:pi;
size(x)
u=sin(x);
t=0.:0.4:40.;
[t u]=ode45(@myfun,t,u);
uu(:,2:n)=u(:,1:n-1);
uu(:,1)=0;uu(:,n+1)=0;
x=[0. x];[xx yy]=meshgrid(x,t);
surf(xx,yy,uu);
xlabel('x');ylabel('t');zlabel('u(x,t)');
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

智能机器人

Robot (super robot)

我们都爱小木虫

相关版块跳转 我要订阅楼主 柱子234 的主题更新
信息提示
请填处理意见