MATLAB 程序错在哪里? 5

程序一直错误大佬帮忙看看用打靶法求两点边值问题t0=0.forj=0,1,2,...solvethefollowingsystemnumericallyfromx=-1t... 程序一直错误大佬帮忙看看用打靶法求两点边值问题
t0=0.
for j=0,1,2,...
solve the following system numerically from x=-1 to x=1
D2u=f(x,u,Du)
u(x=-1)=1
Du(x=-1)=t(j)
D2v= fu(x,u,Du)v+fDu(x,u,Du)Dv
v(x=-1)=0
Dv(x=-1)=1.
set
t(j+1)=t(j)-(u(x=1)-1)/v(x=1).
end
plot(t,y)
展开
 我来答
lhmhz
高粉答主

2020-05-29 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17014

向TA提问 私信TA
展开全部

Matlab程序错的原因是没有理解打靶法算法的求解过程。

用打靶法求解二阶微分方程,是利用下列初值问题代替

u1'=u2, u1(a)=α

u2'=f(x,u1,u2),u2(b)=m

打靶法的求解思路是这样的:

(1)随意选取m的起始值

(2)求出上述初值问题的解

(3)若不符合|u1(b)-β<ε,就修正m的值,可以用ode函数计算

(4)重复计算,直到符合|u1(b)-β<ε,此时的u1(x)就是数值解

修正m的取值,其方法是很多的,线性差值法、牛顿法。

线性差值法的表达式代码

m(n+1)=m(n-1)+(m(n)-m(n-1))*(beta0-beta1(n-1))/(beta1(n)-beta1(n-1));

根据上述思路,编程后运行可以得到【x,y】值,以及图形。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式