用matlab解偏微分方程组时程序怎么也调试不对,具体程序如下,望大神指点

用matlab解偏微分方程组时程序怎么也调试不对,具体程序如下,望大神指点function [ c,f,s ] = pdefun(x,t,u,Du)
k=0.07266;
E=5;
R=200;
%UNTITLED2 此处显示有关此函数的摘要
% 此处显示详细说明
c=[1;exp(2*k*x);14/17];
f=[-u(2);-u(2)^2/u(1)*exp(-2*k*x)*6/5+1/(45*7.266)*exp(-2*k*x)*(1/2*x)*Du(1);-u(2)*u(3)/u(1)];
s=[-2*k*u(2);-k/u(1)*(18/5*u(2)^2-155/126*u(3)^2)*exp(2*k*x)+3^(1/3)/(45*0.07266)*(-3*u(2)/u(1)^2+2*u(3)/E);-14/17*(34/7*k*u(2)*u(3)/u(1)+1/(45*0.07266)*(5/2*u(3)/u(1)^2+2*u(2)/E))];
end

function [u0]= pdeic(x)
%PDEIC 此处显示有关此函数的摘要
% 此处显示详细说明
k=0.07266;
u0=[3^(1/3)*exp(-2*k*x/3);exp(-2*k*x);0];
end
function [pa,qa,pb,qb] = pdebc(xa,ua,xb,ub,t)
%UNTITLED2 此处显示有关此函数的摘要
% 此处显示详细说明
R=200;
k=0.07266;
pa=[ua(1)-3^(1/3);ua(2)-1;ua(3)];
qa=[0;0;0];
pb=[ub(1)-3^(-1/3)*exp(-2*k*R/3);ub(2)-exp(-2*R*k);ub(3)-1+exp(-2*k*R)];
qb=[0,0,0];

end
clear;clc;

x=0:20:200;
t=0:0.5:60;
m=0;

sol=pdepe(m,@pdefun,@pdeic,@pdebc,x,t);

u(1)=sol(:,:,1);

u(2)=sol(:,:,2);

figure;

surf(x,t,u(1))

title('u(1)(x,t)')

xlabel('Distance x')

ylabel('Time t')

figure;

surf(x,t,u(2))

title('u(2)(x,t)')

xlabel('Distance x')

ylabel('Time t')

用matlab求解偏微分方程组时,其程序存在几个小问题:

1、u变量不能以向量变量来表示。u(1)应改写为u1,u(2)应改写为u2

2、同理, surf(x,t,u(1))应改写为surf(x,t,u1),surf(x,t,u(2))应改写为surf(x,t,u2)

3、更改后,可以得到其数值解

追问

你好,我尝试着做了一下,但是还是显示做不出

可以私信一下吗,如果可以,我先采纳了

或者,麻烦您把改过的代码发一下也行

追答

追问

pdefun中的u(1)需要替换吗

求全部代码

我照您的改了还是无法运行

还是报错

出错 pdepe (line 246)
[c,f,s] = feval(pde,xi(1),t(1),U,Ux,varargin{:});

出错 main (line 11)
sol=pdepe(m,@pdefun,@pdeic,@pdebc,x,t);

追答

把全部命令和函数放在一个文件里,执行

你可以看看私信的内容

追问

好的

温馨提示:内容为网友见解,仅供参考
无其他回答

运行matlab帮助文件里的pdepe例子 结果程序报错了
解决方法:知道了原因,解决也就很简单,在你的代码最前面加上一行 function pdex4后就可以了(函数名pdex4其实可以改为任何合法的标识符,没影响)。说明:偏微分方程求解器pdepe的前三个输入参数都是函数,一种做法是把三个函数分别保存成m文件,然后主程序可以用脚本(script)的形式;另一种做法是...

matlab怎么求解偏微分方程组啊,先
pdepe()函数的一般调用格式是:sol=pde...1 例题:解下列偏微分方程组,方程如下图...2 pdefun的命令为:function[c,f,s]=pdef...3 初始条件:初始条件标准形式:[u1;u2]=...4 边界条件:左边界:[0;u2]+[1;0].*f=[0...5 求解偏微分方程组计算程序如下所示:>>...

求个matlab大神帮忙,为什么我写的s函数程序总是switch flag的时候...
Error in 'Jixiebi\/S-Function1' while executing MATLAB S-function 'chap3_8ctrl', flag = 3 (output), at time 0.0. 现在出现的错误 本回答被提问者采纳 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 1条折叠回答 其他类似问题2019-04-24 哪位大神帮忙解决一下这个MATLAB问题,我是小白,下面...

matlab关于偏微分方程
1,用GUI方法,MATLAB的偏微分工具箱(PDE toolbox)可以比较规范的求解各种常见的二阶偏微分方程,但是惋惜的是只能求解特殊二阶的PDE 问题,并且不支持偏微分方程组!PDE toolbox 支持命令行形式求解PDE 问题,但是要记住那些命令以及调用形式真的很累人,还好MATLAB提供了GUI可视交互界面pdetool,在pdetool...

请问matlab 解偏微分方程出3d的图时出现这样的情况是为什么,怎么解决...
答案是对的,例如 syms x y >> da=dsolve('Dx=y+1,Dy=x+1','x(0)=-2,y(0)=1') da = x: [1x1 sym] y: [1x1 sym] 这就是你说的情况了。如要详细一点,用指令: >> da.x ans = 1\/2*exp(t)-3\/2*exp(-t)-1 >> da.y ans = 1\/2*exp(t)+3\/2*exp(-t)-1 ...

matlab怎么解偏微分方程
信号处理|MATLAB电子书|偏微分方程的MATLAB解法免费下载 链接: https:\/\/pan.baidu.com\/s\/1IeHEWx1L4BfjGfavQwk2Og 提取码: 6puw pdetool是matlab的一个重要的工具箱,它可以用数值解法来求解各种繁琐的偏微分方程问题,并且操作非常便捷。

怎么用matlab解这个偏微分方程
回答:建议在matlab里装一个chebfun。百度搜chebfun第一个链接就是。

关于偏微分方程组mathematica或matlab编程求解,有没有简单点的办法,方...
sol = NDSolve[{eqn, int, bon1, bon2}, u, {t, 0, 1}, {r, 0.1, 1}];Plot3D[u[t, r] \/. sol, {t, 0, 1}, {r, 0.1, 1}]注意这里把0点给挖掉了,因为那里是奇点,而Mathematica对偏微分数值计算的此类地方要求比较严,不去掉的话运算会出错。这个就是个最简单的圆形...

求年龄结构模型的MATLAB程序,解偏微分方程组
>>symsx(t)y(t)rdabr='1';d='0.5';a='0.1';b='0.02';[x,y]=dsolve(diff(x)==(r-a*y)*x,diff(y)==-(d-b*x)*y,x(0)==25,y(0)==2)Warning:Explicitsolutioncouldnotbefound.>Indsolveat194x=[emptysym]y=[]说明无解。

matlab pde工具箱求解椭圆型方程的参数c
1,GUI方法,偏微分方程工具箱(PDE工具箱)解决常见的二阶偏微分方程的规范,但遗憾的是,只有解决特殊的二阶PDE问题,不支持偏微分方程的!PDE工具箱支持命令行解决PDE问题,但要记住这些命令,并调用的形式真的累了,好吗MATLAB提供了一个可视化的GUI的接口pdetool在pdetool可以很容易地解决了PDE问题,...

相似回答
大家正在搜