牛顿迭代法解非线性方程组(MATLAB版)
来源:互联网 发布:python软件哪里下载 编辑:程序博客网 时间:2024/06/07 03:08
牛顿迭代法,又名切线法,这里不详细介绍,简单说明每一次牛顿迭代的运算:首先将各个方程式在一个根的估计值处线性化(泰勒展开式忽略高阶余项),然后求解线性化后的方程组,最后再更新根的估计值。下面以求解最简单的非线性二元方程组为例(平面二维定位最基本原理),贴出源代码:
1、新建函数fun.m,定义方程组
function f=fun(x);%定义非线性方程组如下%变量x1 x2%函数f1 f2syms x1 x2f1 = sqrt((x1-4)^2 + x2^2)-sqrt(17);f2 = sqrt(x1^2 + (x2-4)^2)-5;f=[f1 f2];
2、新建dfun.m,求出一阶微分方程
function df=dfun(x);f=fun(x);df=[diff(f,'x1');diff(f,'x2')]; %雅克比矩阵
3、建立newton.m,执行牛顿迭代过程
clear;clcformat;x0=[0 0]; % 迭代初始值eps = 0.00001; % 定位精度要求for i = 1:10 f = double(subs(fun(x0),{'x1' 'x2'},{x0(1) x0(2)})); df = double(subs(dfun(x0),{'x1' 'x2'},{x0(1) x0(2)})); % 得到雅克比矩阵 x = x0 - f/df; if(abs(x-x0) < eps) break; end x0 = x; % 更新迭代结果enddisp('定位坐标:');xdisp('迭代次数:');i结果如下:
定位坐标:
x =
0.0000 -1.0000
迭代次数:
i =
4
0 0
- 牛顿迭代法解非线性方程组(MATLAB版)
- MATLAB 牛顿迭代法解非线性方程组
- 牛顿迭代法解非线性方程组
- matlab实现牛顿迭代法求解非线性方程组
- matlab实现牛顿迭代法求解非线性方程组
- 牛顿迭代法解非线性方程matlab实现
- 利用牛顿迭代法求解非线性方程组
- 牛顿迭代法解非线性方程(组)
- Matlab 数值计算----牛顿法解非线性方程组
- 牛顿法解非线性方程组
- 牛顿法解非线性方程组
- 牛顿迭代法解一元方程组
- 牛顿迭代法解一元方程组
- 迭代法求解非线性方程组
- 用matlab解非线性方程组
- 利用牛顿法接非线性方程组的Matlab程序实例
- matlab多变量牛顿方法求解非线性方程组
- matlab多变量牛顿方法求解非线性方程组
- UISearchBar 如何隐藏按钮
- Winform TextBox中只能输入数字的几种常用方法(C#)
- Writing and Compiling A Simple Program For OpenWrt
- HWM&&碎片整理之move操作
- Android自动化测试之MonkeyRunner录制和回放脚本(四)
- 牛顿迭代法解非线性方程组(MATLAB版)
- ANDROID中的(udev)VOLD分析
- tiny210(s5pv210)移植u-boot(基于 2014.4 版本)——命令补全和历史命令
- 代理技术
- 后台执行命令
- 一张图理解OpenStack Neutron中的调用
- Linux rpm 命令参数使用详解
- 《大话移动APP测试:Android与 iOS应用测试指南 》
- SQL Server 存储过程