资源简介
打靶法-求解边值问题,主要应用于求解微分方程组
代码片段和文件信息
function [tx]=lineshoot(f1f2abalphabetamaxiter)
%线性方程边值问题的打靶算法
%对微分方程y‘‘=p*y‘+q*y+ra %构造成两个等效的初值问题
%u‘‘=p*u‘+q*u+ru(a)=alphau‘(a)=0
%v‘‘=p*v‘+q*vv(a)=betav‘(a)=1
%使用Matlab语言描述微分方程u和v,注意我们先必须化为一阶微分方程组
%f1=@(tu)[u(2);p*u(2)+q*u(1)+r];
%f2=@(tv)[v(2);p*v(2)+q*v(1)];
%则原微分方程的解为
%x=u+c*v=u+(beta-u(b))/v(b)*v
%
%输入参数
% f1 描述方程u的Matlab函数只能是句柄(@()和M函数),或者inline函数
% f2 描述方程v的Matlab函数
% ab 微分计算区间[ab]
% alphabeta 上下边界
% maxiter 最大迭代次数
% 输出参数
% [tx] 坐标点t对应的微分值x
%
% Example
% x‘‘=(2t)/(1+t^2)*x‘-(2x)/(1+t^2)+1
% 边值x(0)=1.25,x(4)=-0.95
%
% f1=@(tu)[u(2);2*t/(1+t.^2)*u(2)-2/(1+t.^2)*u(1)+1];%注意必须使用“;”隔开
% f2=@(tu)[u(2);2*t/(1+t.^2)*u(2)-2/(1+t.^2)*u(1)];
% a=0;b=4;alpha=1.25;
- 上一篇:Matlab-PDE工具箱有限元法求解偏微分方程
- 下一篇:高斯背景建模
评论
共有 条评论