新手入门: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(