声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1611|回复: 4

[综合讨论] 在用打靶法求一阶微分方程时 ,一般怎么调整预测初值

[复制链接]
发表于 2009-2-5 11:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
用打靶法求一阶微分方程时 ,一般怎么调整预测值?
假如已知一个一阶微分方程 dx/dt=ax+b   c<t<d   a,b,c,d 为常数   且已知  x(d)=3,现在用打靶法求x(c)
预测了一个x(c)的初值 然后用四阶龙格库塔求方程。
问题是接下来怎么调整x(c)的初值使得接下来求的x(d)和实际的 x(d)=3的误差满足我的要求。
我用的内插法调整的 。还有别的调整初值的方法吗?
请各位帮忙指点下。谢谢

[ 本帖最后由 ChaChing 于 2009-2-22 12:12 编辑 ]
回复
分享到:

使用道具 举报

 楼主| 发表于 2009-2-18 12:10 | 显示全部楼层
那么没人指点下呢  真的很需要帮助  先谢谢大家了
发表于 2009-2-22 12:59 | 显示全部楼层
汗! 个人还不清楚什麽是打靶法!
建议搜一下论坛, 看看有无LZ要的, 我记得很多人讨论过!

看看这个有没楼主要的
http://forum.vibunion.com/forum/thread-19723-1-1.html

[ 本帖最后由 ChaChing 于 2009-3-11 16:09 编辑 ]

评分

1

查看全部评分

 楼主| 发表于 2009-2-25 13:51 | 显示全部楼层

回复 5楼 ChaChing 的帖子

那个我看过了 他matlab的那个程序是用的matlab里面自带的命令函数。里面没显示怎么调整初值。因为我对matlab里带的函数不熟悉所以我的是按照打靶法原理写的。

alpha1=10^(3/10);
alpha2=10^(3.3/10);
g1=10^(1.1/10);

g2=10^(4.8/10);
m=2;
v2=193.5484*10^12;
h=6.626*(10^(-34));
v1=202.7027*(10^12);
satf=3*(10^15);
deltak=125*10^9;
n2_no1=(pk1*alpha1/(h*v1*satf)+pk2*alpha2/(h*v2*satf))/(1+pk1*(alpha1+g1)/(h*v1*satf)+pk2*(alpha2+g2)/(h*v2*satf));
num11=(pk1*(alpha1+g1)+g1*m*h*v1*deltak)*n2_no1;
num12=alpha1*pk1;
dpk1=(-1)*(num11-num12);%(方程1)dpk1表示pk1的一阶微分
n2_no2=(pk1*alpha1/h/v1/satf+pk2*alpha2/h/v2/satf)/(1+pk2*(alpha2+g2)/h/v2/satf+pk1*(alpha1+g1)/h/v1/satf);
num21=(pk2*(alpha2+g2)+g2*m*h*v2*deltak)*n2_no2;
num22=alpha2*pk2;
dpk2=num21-num22;%(方程2)dpk2表示pk2的一阶微分

为了求 pk1和pk2 必须对他们同时进行四阶龙格库塔。

取的固定步长0.1  , pk1(L)=a(常数) pk2(0)=b (常数)。

在0到L内求这个方程。方程实际上是关于长度L的  但是不显含L。

所以我刚开始的时候给pk1(0)预测一个值 然后根据预测的pk1(0)和pk2(0)用龙格库塔求解看看pk1(L)和已知的pk1(L)是不是相等,不相等的话调整预测的初值再求,直到相等。这是我的思路。但是我不太会matlab自带的打靶法函数和龙格库塔函数。我自己写了打靶法和龙格库塔的程序。但是L取太大的时候程序就不行了。

能不能帮我解一解这个方程。谢谢
 楼主| 发表于 2009-3-11 14:30 | 显示全部楼层
请各位高手不吝赐教啊  !!!!!!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-26 09:38 , Processed in 0.075035 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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