找回密码
 注册
Simdroid-非首页
查看: 102|回复: 0

[01.PDE] 请教高手们:PDE工具箱能解两个偏微分方程相互迭代求解吗

[复制链接]
发表于 2011-7-9 17:33:35 | 显示全部楼层 |阅读模式 来自 北京
请教高手们:PDE工具箱能解两个偏微分方程相互迭代求解吗
?请求圆域上二维薛定谔方程泊松方程迭代自洽的MATLAB解法
眼看越来越快临近毕业了,老板催交论文时间很急!只是苦于遇到个技术性障碍一直没有解决,故在此恳请各位高手不吝赐教!小弟感激不尽!!!请教高手:
问题【1】——
PDE工具箱能解这两个偏微分方程相互迭代求解吗?(其中一个是本征值方程)能的话怎么实现?求圆域上二维薛定谔方程泊松方程迭代自洽的MATLAB解法,
这两个偏微分方程如下:
① 倒三角laplace算子*f(x,y)+V(x,y)*f(x,y)=E*f(x,y)E为本征值,这是薛定谔方程
② 倒三角laplace算子*V(x,y)=a+B(x,y)+c(E)*|f(x,y)|^2这是泊松方程
以上两个方程相互迭代。由①求出f(x,y)和E来代入②中。再由②求出V(x,y)代入①中,再由①重新求出f(x,y)和E来代入②中。。。。如此相互迭代直到相邻两次迭代的数值相差足够小则认为收敛。
求解区域是个圆域边界条件是圆周上f(x,y)和V(x,y)为0.其中a是常数,函数B(x,y)c(E)形式已知。倒三角laplace算子 是 偏比偏x平方+偏比偏y平方

现在遇到的最大的技术障碍是:
引申到
问题【2】——
末学发现PDE工具箱虽然很强大可视化也很好,但是不是只能解已知了“解析表达式”的系数的方程?换句话说只能求解一次已知系数的,不能连续解多次由上一次得出系数的?只能解单个偏微分方程,不能解两个相互迭代的偏微分方程?但这里由于要相互迭代,上一步PDE解出来的不可能是“解析”表达式的V(x,y),而是一堆离散的xi,yi数据点上的Vi“数值”的值,若这些离散数值能输出,请问这“数值”的系数【xi,yi,Vi】能代入作为下一个偏微分方程的系数用PDEtool来解吗?能的话怎么实现?

再引申到
问题【3】——
退一步想,如果能想办法找到二维曲面拟合函数把这些离散的xi,yi数据点上的Vi“数值”拟合出一个V(x,y)的表达式,但由于这个表达式预先并不知道,没法像这样一次性手动添加事先已知的表达式放在单引号里:
‘x.^2+y.^2’
用这样的pdetool代码来手动添加系数‘x.^2+y.^2’:
%PDEcoefficients:
pdeseteq(4,...
'2.0',...
'x.^2+y.^2',...%此处就是对应的系数,但问题是这个表达式事先不知道啊,怎么自动添加到pdeseteq里?
'10.0',...
'1.0',...
'0:10',...
'0.0',...
'0.0',...
'[0100]')
setappdata(pde_fig,'currparam',...
['2.0';...
'x.^2+y.^2';...%此处也是对应的系数,但问题是这个表达式事先不知道啊,怎么自动添加到setappdata里?
'10.0';...
'1.0'])

请问假如能拟合成功,能把此表达式自动让它生成函数表达式句柄,而自动添加到PDEtool的系数里【pdeseteq和setappdata】吗?

问题【1】【2】【3】中的任何一个技术障碍解决掉,整个问题都能解决掉
另外(最好用MATLAB的PDE函数解决,而不是差分法,因为一维的薛定谔方程泊松方程自洽用差分法的我是算过的,但二维极坐标下的用差分法各种细节实在太过繁琐麻烦也容易出错。。。。所以目前寄希望于MATLAB的PDE函数。而PDE工具箱用指令实现倒是大有希望,只可惜遇到以上的技术障碍,眼看毕业越来越近了,老板也催论文催的挺紧,可是在这个问题一直【困扰】耽搁了末学很久很久!迟迟得不到解决!恳请各位高手不吝赐教!末学在此感激不尽!!!末学邮箱cumtsyf03@163.com Q443748346
财富不多,悬赏一半吧!若问题解决了末学悬赏您全部的财富都行哈!感激不尽!
PS:其中简单的只能运行一次的PDE代码如下:
functionpdemodel
[pde_fig,ax]=pdeinit;
pdetool('appl_cb',1);
set(ax,'DataAspectRatio',[111]);
set(ax,'PlotBoxAspectRatio',[1.511]);
set(ax,'XLim',[-1.51.5]);
set(ax,'YLim',[-11]);
set(ax,'XTickMode','auto');
set(ax,'YTickMode','auto');
%Geometrydescription:
pdecirc(0,0,0.40305343511450353,'C1');
set(findobj(get(pde_fig,'Children'),'Tag','PDEEval'),'String','C1')
%Boundaryconditions:
pdetool('changemode',0)
pdesetbd(4,...
'dir',...
1,...
'1',...
'0')
pdesetbd(3,...
'dir',...
1,...
'1',...
'0')
pdesetbd(2,...
'dir',...
1,...
'1',...
'0')
pdesetbd(1,...
'dir',...
1,...
'1',...
'0')
%Meshgeneration:
setappdata(pde_fig,'Hgrad',1.3);
setappdata(pde_fig,'refinemethod','regular');
setappdata(pde_fig,'jiggle',char('on','mean',''));
pdetool('initmesh')

%PDEcoefficients:
pdeseteq(4,...
'2.0',...
'x.^2+y.^2',...
'10.0',...
'1.0',...
'0:10',...
'0.0',...
'0.0',...
'[0100]')
setappdata(pde_fig,'currparam',...
['2.0';...
'x.^2+y.^2';...
'10.0';...
'1.0'])
%Solveparameters:
setappdata(pde_fig,'solveparam',...
str2mat('0','1000','10','pdeadworst',...
'0.5','longest','0','1E-4','','fixed','Inf'))
%Plotflagsanduserdatastrings:
setappdata(pde_fig,'plotflags',[111111110001100001]);
setappdata(pde_fig,'colstring','');
setappdata(pde_fig,'arrowstring','');
setappdata(pde_fig,'deformstring','');
setappdata(pde_fig,'heightstring','');
%SolvePDE:
pdetool('solve')
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-3-29 14:33 , Processed in 0.033914 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表