微分方程数值解法,知道导数的边界值,而不是函数的边界值,我知道微分方程边值问题,把微分变成差分,然后解方程组可解。但是这个问题边界值不是函数的边界值,而是函数导数的边界值

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/10 23:56:17
微分方程数值解法,知道导数的边界值,而不是函数的边界值,我知道微分方程边值问题,把微分变成差分,然后解方程组可解。但是这个问题边界值不是函数的边界值,而是函数导数的边界值

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

微分方程数值解法,知道导数的边界值,而不是函数的边界值,我知道微分方程边值问题,把微分变成差分,然后解方程组可解。但是这个问题边界值不是函数的边界值,而是函数导数的边界值
这个方程最简单的方法是用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;

使用matlab用龙格-库塔解法求数值解,可以调用函数,也可以利用simulink做。
简单的用matlab的符号运算可以得到解析解。
有限元中一般使用伽辽金法(余量加权法的一种),简单的例子可参考http://19se.com.cn/a/gongju/2011/0511/515.html
解微分方程组对工程问题来说十分重要,正不断学习中。您好,龙格库塔是求解初值问题的,而...

全部展开

使用matlab用龙格-库塔解法求数值解,可以调用函数,也可以利用simulink做。
简单的用matlab的符号运算可以得到解析解。
有限元中一般使用伽辽金法(余量加权法的一种),简单的例子可参考http://19se.com.cn/a/gongju/2011/0511/515.html
解微分方程组对工程问题来说十分重要,正不断学习中。

收起

这个是线性非其次方程,解出来的通解一定是 齐次式通解加特解形式。
特解,可以用你的数值解法来找一个。
这样就能得到原方程的通解。通解中有两个待定常数。
把y'(a1)=b1,y'(a2)=b2代入进去,得到两个方程。可以把两个常数解出来大哥,您搞笑吗,那个要是有解析解,谁求数值解。我的问题是怎么求数值解,谢谢y''+y'+y=0这主用一般方法可以解的吧 y''+y'+y=...

全部展开

这个是线性非其次方程,解出来的通解一定是 齐次式通解加特解形式。
特解,可以用你的数值解法来找一个。
这样就能得到原方程的通解。通解中有两个待定常数。
把y'(a1)=b1,y'(a2)=b2代入进去,得到两个方程。可以把两个常数解出来

收起