24小时热门版块排行榜    

查看: 906  |  回复: 6

依旧是则徐

铜虫 (小有名气)

[求助] 二阶常微分方程的编写思路 已有2人参与

求高手解决一下方程的编写思路 最好详细一些。或者给出相似的计算例子也行
y··(t)+2y·(t)+y=0   初始条件y(0)=4    y·(0)=2
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

angocn

至尊木虫 (文坛精英)

【答案】应助回帖

感谢参与,应助指数 +1
这个随便翻开一本数值分析的教材都能找到吧!甚至有的还带源程序。
其实我喜欢历史,可是却学了理科
2楼2014-12-09 13:23:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
令y1=y y2=y'
原二阶常微分初值问题 化为 一阶常微分方程组初值问题
化成方程组:
y1'=y2
y2'=-(2*y2+y1)

初值条件:
y1(0)=4, y2(0)=2

解析解见附图1。

数值解MATLAB代码:
CODE:
function solve_odes
clear all;clc
[t y]=ode45(@odes,[0:0.05:20],[4 2]);
figure(33)
plot(t,y(:,1),'b-s',t,y(:,2),'r-d'),axis([-0.5 20 -2 4.5]),legend('y1','y2')


function f=odes(t,y)
f(1)=y(2);
f(2)=-(2*y(2)+y(1));
f=f';

二阶常微分方程的编写思路
附图1.png


二阶常微分方程的编写思路-1
附图2.png

MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
3楼2014-12-09 21:56:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

依旧是则徐

铜虫 (小有名气)

引用回帖:
3楼: Originally posted by 月只蓝 at 2014-12-09 21:56:02
令y1=y y2=y'
原二阶常微分初值问题 化为 一阶常微分方程组初值问题
化成方程组:
y1'=y2
y2'=-(2*y2+y1)

初值条件:
y1(0)=4, y2(0)=2

解析解见附图1。

数值解MATLAB代码:

function solve_odes
...

谢谢,能再请问一个问题吗,如果是V``(x)+(a+bcos2x)v=0这样的方程编写思路是怎样的,其中a,b 未知,可以变化。我会追加金币的。非常感谢!!!
4楼2014-12-10 10:09:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
依旧是则徐: 金币+15, ★★★★★最佳答案 2014-12-14 16:01:42
引用回帖:
4楼: Originally posted by 依旧是则徐 at 2014-12-10 10:09:25
谢谢,能再请问一个问题吗,如果是V``(x)+(a+bcos2x)v=0这样的方程编写思路是怎样的,其中a,b 未知,可以变化。我会追加金币的。非常感谢!!!...

类似的思路,先降阶 再求解。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
5楼2014-12-10 13:52:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

依旧是则徐

铜虫 (小有名气)

引用回帖:
5楼: Originally posted by 月只蓝 at 2014-12-10 13:52:56
类似的思路,先降阶 再求解。...

版主,按照你的帮助,我这样写的程序,但是子程序里的i,j 怎样设置才能使上面传入的i,j 值呢。
!求解Y''(T)=-(i+j*cos(2*T))*Y
program main
  use IMSL
  implicit none
  integer, parameter :: MXPARM = 50
  integer, parameter :: N = 2
  integer IDO, ISTEP, NOUT
  real PARAM(MXPARM), T, TEND, Y(N)
  real, parameter :: TOL = 1E-8
  external FCN
  real :: i,j

  do i=0,1,0.001
     do j=0,1.5,0.1
           write(*,"(I2,I2)" i,j

       PARAM = 0
       WRITE (*,"(' Time', 9X,'Y')"
       Y(1) = 0 ! Initial condition
       Y(2) = 2.0
       T = 0.0    ! Y(T)=4.0中的时间T值
       IDO = 1
         do ISTEP=0,100,10
           TEND = ISTEP
               call IVPRK (IDO, N, FCN, T, TEND, TOL, PARAM, Y)
           write (*,'(F5.1,F12.4)') T, Y
         end do

       call IVPRK (3, N, FCN, T, TEND, TOL, PARAM, Y)
         end do
  end do
   
  stop
  end program
! 计算微分方程式
! YPRIME=Y'=f(t,y)
subroutine FCN (N, T, Y, YPRIME)
  implicit none
  integer N
  real T, Y(N), YPRIME(N)
  real i,j
  !Y''(T)=-(i+j*cos(2*T))*Y
  YPRIME(2) =-(i+j*cos(2*T))*Y(1)
  return
end subroutine
6楼2014-12-14 11:45:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
祝福。
7楼2014-12-14 11:47:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 依旧是则徐 的主题更新
信息提示
请填处理意见