matlab 非线性差分方程,用牛顿法求解非线性差分方程组
本帖最后由 呵呵。。。 于 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的值和jacobi矩阵
x1=x0-J\fx0; % 牛顿法迭代公式
err=norm(x1-x0);
x0=x1;
X(k,:)=x1;
end
if k==maxiter
error('迭代次数超限,迭代失败!')
end
x=x1;iter=k
原微分方程用有限差分法离散出的非线性代数方程组见下面的图片:
边值条件我已经会用了,就是把它代入方程组就好了,现在的问题是如何用这个方程组调用牛顿迭代法。
我把上面的方程组输入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
图片2.png
(3.47 KB, 下载次数: 1)
2016-5-25 19:20 上传
matlab 非线性差分方程,用牛顿法求解非线性差分方程组相关推荐
- MATLAB牛顿法求解非线性方程组2
%% 牛顿法主程序 clear;clc format; x0=[0 0]; % 迭代初始值 eps = 0.00001; % 定位精度要求 for i = 1:10f = double(subs(fu ...
- matlab牛顿法解非线性方程组,matlab实现牛顿迭代法求解非线性方程组.pdf
资源描述 matlab 实现牛顿迭代法求解非线性方程组实现牛顿迭代法求解非线性方程组 已知非线性方程组如下 3*x1-cos(x2*x3)-1/2=0 x1^2-81*(x2+0.1)^2+sin(x ...
- 非线性方程组牛顿迭代法matlab,matlab实现牛顿迭代法求解非线性方程组
<matlab实现牛顿迭代法求解非线性方程组>由会员分享,可在线阅读,更多相关<matlab实现牛顿迭代法求解非线性方程组(5页珍藏版)>请在人人文库网上搜索. 1.matla ...
- python牛顿法解非线性方程组_matlab实现牛顿迭代法求解非线性方程组.pdf
matlab实现牛顿迭代法求解非线性方程组.pdf matlab 实现牛顿迭代法求解非线性方程组实现牛顿迭代法求解非线性方程组 已知非线性方程组如下 3*x1-cosx2*x3-1/20 x12-81 ...
- matlab矩阵方程奇异,matlab求解非线性方程组 牛顿迭代发 奇异矩阵
求高手帮忙看看下面的程序怎么改 牛顿迭代法 求解后现实矩阵奇异,跪求高手 -------------------------------- %首先建立函数fun %储存方程组编程如下将fun.m ...
- 简单迭代法、牛顿法、弦割法、布洛依登法求解方程或方程组【Matlab】
利用迭代法求解定非线性方程及方程组,使得误差不超过10^(-8).同时应用迭代加速技术,提交迭代运算效率. 此题需要用到的MATLAB代码及附录: 附录6 二分法作根的隔离 % 附录6 二分法作根的隔 ...
- 迭代法求解非线性方程组(含python代码)
1. 迭代法求解非线性方程组的原理 参考西安交大数值分析教材 2. 迭代法求解非线性方程组的计算过程 牛顿法求解非线性方程组的计算过程如下 弦割法与牛顿法类似,弦割法将牛顿法中的偏导数 ...
- 拟牛顿法求解非线性方程组
文章目录 牛顿法求解非线性方程组 拟牛顿法 案例 Python代码 牛顿法求解非线性方程组 假设有非线性方程组 f(x)=0f(x)=0f(x)=0, 解为x∗x^{*}x∗ f(x∗)=f(x~)+ ...
- python牛顿法解非线性方程组_科学网—求解多元非线性方程组F(x)=0的Newton-Raphson方法及其MATLAB实现 - 王福昌的博文...
科学网对公式支持不太好,在博客园有相同博文 牛顿迭代法可以推广到多元非线性方程组 $boldsymbol{F}(boldsymbol{x})=boldsymbol{0}$的情况,称为牛顿-- 拉夫逊方 ...
最新文章
- juddi MySQL_JUDDI v3部署并连接MySQL数据库
- 基于pygame的射击小游戏制作(一)让飞船动起来
- 《linux内核设计与实现》第一章
- [转]你打算如何提升自己?
- #ifdef __cplusplus extern “C”的作用详解
- 两个android程序间的相互调用(apk互调)
- git 中怎样查看未传送(git push)到远程代码库的(git commit)提交?
- stm32usb做虚拟串口和键盘_在MINI STM32 板子上实现USB虚拟串口
- 解决搜狗输入法默认问题
- html转word样式出问题
- python3爬取网易云歌曲的相关信息
- 浅谈Flink对象重用(object reuse)
- 【剑指Offer】个人学习笔记_41_数据流中的中位数
- 无法初始化Qt平台插件
- java基础案例 饲养员喂养动物
- 【Linux 内核 内存管理】物理分配页 ⑧ ( __alloc_pages_slowpath 慢速路径调用函数源码分析 | 获取首选内存区域 | 异步回收内存页 | 最低水线也分配 | 直接分配 )
- 【19调剂】齐鲁工业大学(山东省科学院)2019年硕士研究生预调剂信息
- css文件组件化(不需要再创css文件了)
- Canvas 贪吃蛇大作战
- VHDL:24秒倒计时器的设计(代码完整,结构清晰,很容易看懂)