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}$的情况,称为牛顿-- 拉夫逊方 ...
最新文章
- ACL最佳论文提出最新NLP模型测试方法,最佳论文提名也不可小觑
- 24 个必须掌握的数据库面试问题!
- 百度推送 android7.1,【SDK版本更新】Android SDK 5.7.1
- SDWebImage源码阅读(九)SDWebImageDownloader
- 2019-03-18-算法-进化(实现strStr())
- apollo编译报错,Error No compiler is provided in this enviroment.Perhaps you are running on a JRE rather
- 在Cygwin上安装编辑器vim 【ZT】
- 单系统站内信设计概述(满足百万级信息)
- TokenInsight:BTC全网流量逐级上升,链上活跃度环比上周大幅回升
- torch.index_select与torch.gather
- java毕业设计选题之《校园管理、教育教学类》
- 最速下降法matlab全局最小值_最速下降法+Matlab代码
- 【机器学习】有监督学习,无监督学习,半监督学习和强化学习
- 唱响艾泽拉斯_综合篇
- Nlite后期处理技术小结(第三次更新...全文完)(by bluewind)
- IMXRT 的Boot模式
- 如何写一个魔方二维动态还原MATLAB仿真程序
- idea报错 :org.codehaus.plexus.component.repository.exception.ComponentLookupException:
- Android官方开发文档Training系列课程中文版:打印内容之自定义文档打印
- KVCamp;KVO
热门文章
- html里空白的高度怎么设置,如何使用CSS将空白一行高度?
- 自然语言处理简介及主要研究方向
- 汇川PLC AM600、AC800系统变量内存及变量寄存器地址分配
- sqlite constraint
- LeetCode高频题:最长公共子序列,玩游戏A和游戏B,两兄弟加起来最多可以获得多少奖品
- 语音噪声---学习笔记
- 人工智能专栏第十一讲——指代消歧
- cas14510-06-6|8-羟基喹啉-2-甲醛|8-Hydroxyquinoline-2-carbaldehyde黄色结晶粉末
- 使用PostMessage解决跨窗体消息传递
- 软件工程案例教程·韩万江【课后习题】