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