微分方程数值解法,知道导数的边界值,而不是函数的边界值,怎么做?

我知道微分方程边值问题,把微分变成差分,然后解方程组可解。但是这个问题边界值不是函数的边界值,而是函数导数的边界值,请问怎么处理?看了2本书,也没答案比如y''+y'+y... 我知道微分方程边值问题,把微分变成差分,然后解方程组可解。但是这个问题边界值不是函数的边界值,而是函数导数的边界值,请问怎么处理?看了2本书,也没答案

比如y''+y'+y=f(x) a1<=x<=a2
y'(a1)=b1,y'(a2)=b2
展开
夜宵赌神Y
2011-05-14 · 超过22用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:58.9万
展开全部
这个方程最简单的方法是用shooting method.可wiki 之。
主要就假设一个y(a1), 然后看,y'(a2)是否等于b2。
可以用matlab写两个小函数,一个用在ode45(fun1),然后y(a1)的值可以用fzero(fun2).
fun1就是把二阶微分化成一阶方程组,fun2就是调用ode45并返回y'(a2)-b2. 这样会自动求出初值的。

别外这个方程可能有解析解。可以利用格林函数来解,得到一个积分形式的解。

给你看一个我以前写的例子吧。适当改下就行了。
function out=fdif(eta,f)
out=zeros(size(f));
out(1)=f(2);
out(2)=f(3);
out(3)=f(2)^2-1-f(1)*f(3);

function result=soldif(x)
[etaout,fout]=ode45('fdif',[0,10],[0,0,x]);
result=fout(end,2)-1;
更多追问追答
追问
您好,最近看了一下shooting method,发现我这个问题似乎不能应用此办法,我的方程齐次项是y''+9/4y=0,shooting method是把原方程分解为y=u+c*v,c是常数,v就是齐次方程。x的区间是[-pi,pi],这就导致了一个问题,因为shooting method要求v‘(-pi)=0,所以v’(pi)=0,c无法求解。我看的shooting method例子边界条件是y=。。。而不是y‘=。。。请问我该如何处理,两边求导?
追答
你对shooting method的理解好像不太对(或者说和我说的不一样)。对于齐次方程,比如你说的y''+9/4y=f(x)。应该像我之前说的先变成一次微分方程组。y1'=y2; (y2)'+9/4y1=f(x)所以下面函数改成
function out=fdif(eta,f)
out=zeros(size(f));
out(1)=f(2);
out(2)=f(x)-9/4*f(1); //注意这个f(x)改成相应的,如f(x)=x^2; then 改成eta^2
这样就可以调用ode45.
把下面代码改成
function result=soldif(x)
[etaout,fout]=ode45('fdif',[-pi,pi],[x,0]); // [x,0]分别为假设初如值及其一阶导数
result=fout(end,2)-0; // 这里的0是最后一点导数。
最后利用fzero就可以求解,试试吧。Good luck
佛山墨家科技有限公司
2025-07-30 广告
物流体积测量是指对物流过程中涉及的货物进行体积测量的过程。在物流领域中,货物的体积是计算物流成本和效率的重要因素之一。物流体积测量的主要目的是为了确定货物的体积,以便在存储、运输、中转等环节中更好地进行规划和安排,从而提高物流效率和降低成本... 点击进入详情页
本回答由佛山墨家科技有限公司提供
哆嗒数学网
2011-05-13 · 教育领域创作者
个人认证用户
哆嗒数学网
采纳数:2537 获赞数:18819

向TA提问 私信TA
展开全部
这个是线性非其次方程,解出来的通解一定是 齐次式通解加特解形式。
特解,可以用你的数值解法来找一个。
这样就能得到原方程的通解。通解中有两个待定常数。
把y'(a1)=b1,y'(a2)=b2代入进去,得到两个方程。可以把两个常数解出来
更多追问追答
追问
大哥,您搞笑吗,那个要是有解析解,谁求数值解。我的问题是怎么求数值解,谢谢
追答
y''+y'+y=0这主用一般方法可以解的吧
y''+y'+y=f(x),用数值解法可以找特解的吧。(比如幂级数解法)

凑在一起,解可以找出来数值解的。我晕。

还有一个办法 两边求导
得到y'''+y''+y' =f'(x)

自己没明白别人的意思,还说明人高笑,不想细讲了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lijil168
2011-05-13 · 超过12用户采纳过TA的回答
知道答主
回答量:31
采纳率:0%
帮助的人:33.3万
展开全部
使用matlab用龙格-库塔解法求数值解,可以调用函数,也可以利用simulink做。
简单的用matlab的符号运算可以得到解析解。

有限元中一般使用伽辽金法(余量加权法的一种),简单的例子可参考http://19se.com.cn/a/gongju/2011/0511/515.html
解微分方程组对工程问题来说十分重要,正不断学习中。
追问
您好,龙格库塔是求解初值问题的,而不是边值问题,ode45也是,谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式