| 查看: 463 | 回复: 4 | |||
| 当前主题已经存档。 | |||
[交流]
【求助】2阶常微分方程的初值or边值的求解问题
|
|||
|
我现在要解一个2阶的常微分方程,非线性的 但是已知的条件是x=0.y’=0;x=1,y=1 想用matlab求解的 但是这样的初始已知条件的,可以用ode45函数或者bvp4c()这样的函数来解吗? 大家教教我吧 谢谢了 [ Last edited by luoqiquan on 2009-12-19 at 17:38 ] |
» 猜你喜欢
求国际会议网站
已经有1人回复
求取一些关于纳米材料和纳米技术相关的英文PPT。
已经有0人回复
物理学I论文润色/翻译怎么收费?
已经有101人回复
【复旦大学】二维材料方向招收2026年博士研究生1名
已经有0人回复
北京纳米能源与系统研究所 王中林院士/曹南颖研究员课题组2026级硕/博/博后招生
已经有10人回复
荷兰Utrecht University超快太赫兹光谱王海教授课题招收2026 CSC博士生
已经有19人回复
反铁磁体中的磁性切换:两种不同的机制已成功可视化
已经有0人回复
26申博推荐:南京航空航天大学国际前沿院光学方向招收博士生!
已经有0人回复
求标准粉末衍射卡号 ICDD 01-076-1802
已经有0人回复
2楼2009-06-12 08:58:46
haixing2008
荣誉版主 (文坛精英)
- 应助: 22 (小学生)
- 贵宾: 2.252
- 金币: 32603.8
- 散金: 2020
- 红花: 44
- 沙发: 1
- 帖子: 25068
- 在线: 429.1小时
- 虫号: 540264
- 注册: 2008-04-06
- 性别: GG
- 专业: 计算数学与科学工程计算
- 管辖: 信息科学

3楼2009-06-13 08:38:53
change0618
铁杆木虫 (著名写手)
方丈大师
- 计算强帖: 1
- 应助: 44 (小学生)
- 金币: 17724.5
- 红花: 17
- 帖子: 2413
- 在线: 546.7小时
- 虫号: 496517
- 注册: 2008-01-19
- 专业: 化学反应工程
★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
q68(金币+2,VIP+0):有程序就不错! 6-28 11:40
小木虫(金币+0.5):给个红包,谢谢回帖交流
q68(金币+2,VIP+0):有程序就不错! 6-28 11:40
|
先给你一个差分法的程序吧,你自己看看 function FDMperfect % 此程序用差分法计算一般常微分方程二阶边值问题; % 方程形式为:-D2u+p(x)*Du+q(x)*u=f(x); % α1*Du(a)+α2*u(a)=α; % β1*Du(b)+β2*u(b)=β; % 其中p(x),q(x),f(x)属于C[a,b],α1^2+α2^2~=0,β1^2+β2^2~=0; clear all clc format long a=0; b=1; xspan=[a,b]; hpoint=[0.05,0.02]; alpha=[0 1 1]; beta=[1 1 3/2]; px=@(x)(-1+0*x); qx=@(x)(0+0*x); fx=@(x)(-x); for m=1:length(hpoint) h=hpoint(m); [x,u]=FDM_Oh2(xspan,h,px,qx,fx,alpha,beta); [x2,u2]=FDM_Oh4(xspan,h,px,qx,fx,alpha,beta); u_true=x.^2/2-x+2-exp(-x); figure(m) plot(x(1:2:end),u(1:2:end),'b+',x2(1:2:end),u2(1:2:end),'ro',x,u_true,'k-') title(['h= ',num2str(h)]) xlabel('x') ylabel('u') legend('O(h^2) FDM Value','O(h^4) FDM Value','True Value','location','Northwest'); legend boxoff fprintf('\n\th=%.2f,the Values of u:\n\n',h) fprintf('\tx\t\tO(h^2)FDM Value\t\tO(h^4)FDM Value\t\tTrue Value\n') for i=1:length(x) fprintf('\t%.2f\t%.10f\t\t%.10f\t\t%.10f\n',x(i),u(i),u2(i),u_true(i)) end end function [x,u]=FDM_Oh2(xspan,h,px,qx,fx,alpha,beta) x=xspan(1):h:xspan(2); p=px(x); q=qx(x); f=fx(x); n=length(x); A=zeros(n,n); B=zeros(n,1); A(1,1:3)=[-3/2*alpha(1)+h*alpha(2),2*alpha(1),-alpha(1)/2]; B(1)=alpha(3)*h; for i=2:n-1 A(i,i-1:i+1)=[-(1+h*p(i)/2),2+q(i)*h^2,-(1-h*p(i)/2)]; B(i)=f(i)*h^2; end A(n,n-2:n)=[beta(1)/2,-2*beta(1),3/2*beta(1)+h*beta(2)]; B(n)=beta(3)*h; A=sparse(A); x=x'; u=A\B; function [x,u]=FDM_Oh4(xspan,h,px,qx,fx,alpha,beta) x=xspan(1):h:xspan(2); p=px(x); q=qx(x); f=fx(x); n=length(x); A=zeros(n,n); B=zeros(n,1); A(1,1:5)=[-25/12*alpha(1)+h*alpha(2),4*alpha(1),-3*alpha(1),4/3*alpha(1),-1/4*alpha(1)]; A(2,1:5)=[-35-25*h*p(1),104+48*h*p(1),-114-36*h*p(1),56+16*h*p(1),-11-3*h*p(1)]; B(1)=alpha(3)*h; B(2)=12*h^2*f(1); for i=3:n-2 A(i,i-2:i+2)=[1+h*p(i),-16-8*h*p(i),30+12*h^2*q(i),-16+8*h*p(i),1-h*p(i)]; B(i)=12*h^2*f(i); end A(n-1,n-4:n)=[-11+3*h*p(n-1),56-16*h*p(n-1),-114+36*h*p(n-1),104-48*h*p(n-1),-35+25*h*p(n-1)]; B(n-1)=12*h^2*f(n-1); A(n,n-4:n)=[1/4*beta(1),-4/3*beta(1),3*beta(1),-4*beta(1),25/12*beta(1)+h*beta(2)]; B(n)=h*beta(3); A=sparse(A); x=x'; u=A\B; |
4楼2009-06-28 10:43:33
5楼2009-12-19 17:39:17













回复此楼
