matlab牛顿迭代法 方程的根,牛顿迭代法求方程解 程序如下
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
function [x_reality,n_reality] = Newt( f_name,x_start,tolerance,n_limit)
%%
%牛顿迭代法(切线法)求解方程f_name = 0根的MATLAB实现
% f_name为迭代函数
% x_start为开始迭代的初始坐标
% tolerance为函数迭代的精度要求
% n_limit为函数的最大迭代次数
%%
% x_reality为最终迭代结果
% n_reality为最后的迭代次数
%%
format long; % 计算结果保留到小数点后14位
fprintf('牛顿迭代法求方程: %s = 0 的近似根\n',f_name);
del_x = 0.0000001; % 用于求函数导数值的极小量
n_reality = 0;
x_reality = x_start;
x_start = x_reality + 1000; % 保证迭代能开始
%%
while 1
if(abs(x_reality - x_start) <= tolerance) % 如果满足精度要求,输出结果,跳出while循环
fprintf('在精度不超过%.14f的条件下,方程:%s = 0 的根为 %.14f\n迭代次数为:%d\n',...
tolerance,f_name,x_reality,n_reality);
break;
elseif(n_reality > n_limit) % 如果迭代次数超过限制,输出提示语,结束循环
disp('迭代次数超界');
break;
else
x_start = x_reality; % 把x_reality的值赋给x_start,用于求x_start点的到数值以及迭代
if(feval(f_name,x_start + del_x) - feval(f_name,x_start))==0
disp('导数为0')
break;
else
y_deriv = (feval(f_name,x_start + del_x) - feval(f_name,x_start)) / del_x;
% x_start点的导数值
x_reality = x_start - feval(f_name,x_start) / y_deriv;
% 牛顿迭代
n_reality = n_reality + 1; % 迭代次数加1
fprintf('n_reality=%d, x_start=%14.14f,y_start=%14.14f\n',n_reality,x_start,feval(f_name,x_start));
end
end
end
disp('牛顿迭代发结束');
end
matlab牛顿迭代法 方程的根,牛顿迭代法求方程解 程序如下相关推荐
- R语言应用uniroot函数求解方程的根(一元解):仿真数据(方程式可视化、并添加y=0的水平横线)、uniroot函数求解方程的根(并添加方程根对应的垂直竖线)
R语言应用uniroot函数求解方程的根(一元解):仿真数据(方程式可视化.并添加y=0的水平横线).uniroot函数求解方程的根(并添加方程根对应的垂直竖线) 目录
- 二分法求方程的根_快速求解方程的根——二分法与牛顿迭代法
今天是周四高等数学专题的第7篇文章. 之前的文章和大家聊了许多数学上的理论,今天和大家聊点有用的东西. 我们都知道,工业上的很多问题经过抽象和建模之后,本质还是数学问题.而说到数学问题就离不开方程,在 ...
- c语言函数求方程ax2 bx c,关于求方程ax2+bx+c=0根的问题
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #include #include"resource.h" BOOL CALLB ...
- 100个python算法超详细讲解:牛顿迭代法求方程根
1.问题描述 编写用牛顿迭代法求方程根的函数.方程为ax 3 +bx 2 +cx+d=0,系数a. b.c.d由主函数输入,求x在1附近的一个实根.求出根后,由主函数输出. 2.问题分析 牛顿迭代法是 ...
- 用牛顿迭代法求方程的根
用牛顿迭代法求方程的根(C语言) 题目要求:牛顿迭代法是一种重要的基本的求方程根的方法.现有方程为axˆ3+bxˆ2+cx+d=0,系数a,b,c,d的值一次为1,2,3,4,由主函数输入.求x在1附 ...
- matlab求方程实根,matlab怎么求方程的根
MATLAB解方程_IT/计算机_专业资料.一般的代数方程函数solve用于求解一般代数方程的根,假定S为符 号表达式,命令solve (S)求解表达式等于0的根,也 可以再输入一个...... MA ...
- 用弦截法求解方程的根
/* 用弦截法求解方程的根 算法思想 三元方程的函数增减单调特性 定义X1,X2两个坐标 使得F(X1) 与F(X2) 的值相反 这样X1,X2之间必有一跟 由下面的弦截法公式求焦点坐标 当F(X)与 ...
- 用牛顿迭代法求方程的根matlab,牛顿迭代法求方程根的MATLAB程序
function [x_reality,n_reality] = Newt( f_name,x_start,tolerance,n_limit) %% %牛顿迭代法(切线法)求解方程f_name = ...
- 用牛顿迭代法求方程的根matlab,牛顿迭代法求方程解 程序如下
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function [x_reality,n_reality] = Newt( f_name,x_start,tolerance,n_limit) %% % ...
最新文章
- PCL特征点与配准(1)
- java fork join原理_Java并发Fork-Join框架原理解析
- 第一章——数据结构之绪论
- java导出excel设置行高列宽_使用POI生成Excel文件,可以自动调整excel列宽
- Python中__init__和__new__的区别详解
- linux 内核/proc
- 检查radio/checkbox是否至少选择一项
- 零基础安卓手游辅助开发入门视频教程
- 1.7 COMS边沿触发器
- python 实现文字识别提取
- TC流量控制HTB示例
- 使用SpringMVC框架实现员工管理系统
- 电商平台关联法则模型及推荐系统实现(R语言)
- 网络——数字数据编码
- 为什么重写equals方法,还必须要重写hashcode方法
- Python在高等数学和线性代数中的应用
- littlevgl教程 Linux,树莓派littlevGL系列教程:容器控件(lv_cont)
- Java8新特性----Lambda表达式详细探讨
- 用 VR 玩《魔兽世界》是一种怎样的体验?
- 替代Xshell的良心国产SSH工具软件