隐式差分格式matlab,用牛顿法求解非线性隐式差分方程组

新手入门:L

就是一个二阶的非线性常微分方程两点边值问题,用有限差分法离散成非线性方程组之后,现在要用牛顿法求解这个方程组,然后我有一个编好的牛顿法的程序,但是不知道怎么输入那个差分方程组调用牛顿法,

原微分方程用有限差分法离散出的非线性代数方程组见下面的图片:

我把上面的方程组输入MATLAB是下面这样的,不知道有没有错误,求大神帮忙看一眼

function f=F(y0,b,N)

a=0;%左区间端点

h=(b-a)/N;%剖分的步长

%常数

q=1.6*10^(-19);

ep=1.064*10^(-12);

theta=38.5;

ni=1.4*10^10;

m=10^21;

Y=zeros(N-1,1);%对Y赋初值

Y(1)=y0;%迭代初值

Y(2)=2*y0+h^2*(q/ep*(ni*exp(-theta*x(k))-ni*...

exp(theta*x(k)))+q/ep*m*x(k));

%定义差分方程组

for k=2:N-1

x(k)=a+k*h;%定义差分点的坐标

Y(k)=(x(k+1)-2*x(k)+x(k-1))/h^2+q/ep*(ni*exp(-theta*x(k))-ni*...

exp(theta*x(k)))+q/ep*m*x(k);%差分格式

end

而已有的牛顿迭代程序是:

function [x,iter,X]=newtong(


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部