本帖最后由 呵呵。。。 于 2016-5-25 19:37 编辑
新手入门:L
就是一个二阶的非线性常微分方程两点边值问题,用有限差分法离散成非线性方程组之后,现在要用牛顿法求解这个方程组,然后我有一个编好的牛顿法的程序,但是不知道怎么输入那个差分方程组调用牛顿法,还有边值怎么处理?
这是编好的牛顿法程序:
function [x,iter,X]=newtong(fun,x0,eps,maxiter)
% Newton法求解非线性方程组的根
% 输入参数:
% ---fun:迭代函数
% ---x0:初始迭代点向量
% ---eps:精度要求,默认值为1e-6
% ---maxiter:最大迭代次数,默认值为1e4
% 输出参数:
% ---x:非线性方程的近似解向量
% ---iter:迭代次数
% ---X:每一步迭代的结果
if nargin<2,error('输入参数至少需要2个!'),end
if nargin<3|isempty(eps),eps=1e-6;end
if nargin<4|isempty(maxiter),maxiter=1e4;end
k=0;err=1;
while err>eps
k=k+1;
[fx0,J]=feval(fun,x0); % 求函数fun的值