牛顿下山法c语言_数值计算(二十九)修正牛顿法I求解方程的根
1 原理
2 计算结果
3 相关程序A
function sys=NewtonK()
%{
程序功能:
1、使用修正牛顿法一求解非线性方程
2、fx=0;
3、算法实现!
%}clear,clc,close all num=50;%最大迭代次数eps=1e-4; %迭代精度X=zeros(num,1);X(1)=1; %初始解flag=0;syms xfor k=1:num-1v=fx(x);dv=dfx(x);% z=X(k)-subs(v,x, X(k))/2/subs(dv,x, X(k));
% X(k+1)=X(k)-subs( v, x, X(k) ) /( subs( dv, x, z) );z=X(k)-subs(v,x, X(k))/subs(dv,x, X(k));X(k+1)=X(k)-2*subs( v, x, X(k))/( subs( dv, x, X(k) )+subs(dv, x ,z) );if( abs( X(k+1) )<=1 )E=abs( X(k+1)- X(k) );elseE=abs( (X(k+1)-X(k) )/X(k+1) );endif(E<eps)flag=1;sys=vpa( X(1:k+1) ,10);plot(sys, '-o' , 'linewidth',3)grid on break;endendif(~flag)sys=[];disp('Iterative Failure!')enderror=fx(X(k+1))endfunction sys=dfx( x )sys=diff(fx(x) ,x ); %一阶导数end
function sys=fx( x )%化为fx=0的形式% sys=x*exp(x)-1 ;
% sys=x-exp(-x);sys=x^4-4*x^2+4;
% sys=x^3+4*x^2-10;
% sys=sin(x)^2-x^2+1;
% sys=x^2-exp(x)-3*x+2;end
4 相关程序B(结合Newton下山法,引入下山因子)
function root=NewtonF( )
%{
程序功能:
1、牛顿迭代法求一元函数的根
2、修正的牛顿迭代法一
3、算法实现!
4、结合Newton下山法,引入下山因子
%}clear,clc,close allN=20; %最大迭代次数x0=1; %给出初始值eps=1e-4 ; %给出误差精度x=zeros(N,1) ;x(1)=x0;syms tfor i=1:Nlambda=1;v=fun(t);dv=dfun(t);z=x(i)-subs(v,t, x(i))/subs(dv,t, x(i));x(i+1)=x(i)-2*subs( v, t, x(i))/( subs( dv, t, x(i) )+subs(dv, t ,z) );flag=0;while( flag )if( fun( x(i+1))<fun( x(i) ) )flag=1; %满足函数值下降elselambda=lambda/2; %否则替换下山因子x(i+1)=x(i)-lambda*subs( v,x(i))/subs(dv,x(i) );endendif( abs( x(i+1)-x(i) )<eps || i+1>N) %满足精度要求break %退出循环endendroot=vpa( x(1:i+1),10);plot(root, '-o' , 'linewidth',3)grid onerror=fun(x(i+1))endfunction y=dfun(x)y=diff( fun(x) ,x);end
function y=fun(x )% y=n1*sin( b*t )-b*cos(b*t)+b*exp(n2*t) ;
% y=t^3/3-t;
% y=x*exp(x)-1 ;y=x^4-4*x^2+4;
% y=x^3-x-1;
% y=x^3+4*x^2-10;
end
牛顿下山法c语言_数值计算(二十九)修正牛顿法I求解方程的根相关推荐
- 2021年大数据常用语言Scala(二十九):scala面向对象 单例对象
目录 单例对象 定义object - 掌握 伴生对象 - 掌握 apply方法 - 掌握 main方法 单例对象 Scala中没有static关键字,但是它支持静态 如果要定义静态的东西,统统定义到o ...
- 【C语言】案例二十九 综合案例——体育成绩管理系统
案例描述 体侧所含项目与每项所占比例如下表所示: 单项指标 权重 体重指数(BMI) 15 肺活量 15 50米 20 坐位体前屈 10 立定跳远 10 引体向上(男)/仰卧起坐(女) 10 1000 ...
- 利用牛顿公式求解方程的根并且实现牛顿下山法
实验要求 a. 实现牛顿公式,并分别找到收敛和发散的例子 算法介绍 牛顿公式原理如下图: 为了防止牛顿迭代发散并且加速迭代速度,所以我们在这里引入一个新的方法-- 牛顿下山法: 根据牛顿公式原理以及牛 ...
- 求解非线性方程组的牛顿法c语言,牛顿下山法求解非线性方程(组)(C实现)...
1.算法描述 (1)符号说明与基本假设 对于非线性方程组: (1) 引入向量: 可将(1) ...
- 牛顿法和牛顿下山法求极值的理解
泰勒展开 先创建一个不太方便求解的方程sinx=−0.01ex\sin x=-0.01e^xsinx=−0.01ex,并用matlab画出来y=sinx+0.01exy=\sin x+0.01e^ ...
- 非线性方程的数值解法:牛顿法及牛顿下山法(含Matlab程序)
牛顿法及牛顿下山法 简介:牛顿迭代法是求解单变量非线性方程f(x)=0中最实用的方法,该方法在单根附近二阶收敛.但应用时要选用较好的初值x0近似才能保证迭代收敛.为克服这一缺点,可使用牛顿下山法.下面 ...
- matlab中牛顿下山法实例,非线性方程的数值解法牛顿下山法matlab.docx
非线性方程的数值解法牛顿下山法matlab.docx 1 非线性方程的数值解法 --计算物理实验作业九 陈万 物理学2013级 13020011006 题目: 用下列方法求 在 附近的根.根的准确 ...
- 牛顿下山法求解非线性方程(组)(C实现)
1.算法描述 (1)符号说明与基本假设 对于非线性方程组: (1) 引入向量: 可将(1) ...
- matlab 牛顿法 初值,非线性方程的数值解法:牛顿法及牛顿下山法(含Matlab程序)...
牛顿法及牛顿下山法 简介:牛顿迭代法是求解单变量非线性方程f(x)=0中最实用的方法,该方法在单根附近二阶收敛.但应用时要选用较好的初值x0近似才能保证迭代收敛.为克服这一缺点,可使用牛顿下山法.下面 ...
最新文章
- 十年老码农吐血经验:跳槽千万不能选高年终低base的公司,超过15薪就要慎重!...
- C#String.PadLeft函数,文本对齐以及填补解决方案
- ValueError: No engine for filetype: 'csv'解决与书本7-2代码改写
- redis java根据value排序_Redis高级特性——排序
- 端口停止使用_我停止使用
- 关系型数据库的核心单元是_核中的数据关系
- Storm精华问答 | Storm如何连接MySQL?
- 【c语言数据结构笔记】1.2 数据结构
- 收藏 | PyTorch常用代码段合集
- 阿里数据中台大火,国外却在建设数据湖,这两者什么关系?
- 如何设置 Web 服务器的权限之iis
- ARC077C pushpush 递推
- java 并发包脑图
- 数学建模,一位负责编程的小白拿国奖的学习路程。
- vuepress+github+versel部署免费个人博客
- allegro笔记:元件与走线一起移动/板框原点origin设置/放置定位孔封装等到特定坐标
- rk3288 android 6.0固件,Firefly-RK3288主板烧写官方Android固件起不来
- C#.NET发EMAIL的几种方法 MailMessage/SmtpClient/CDO.Message
- c语言中100m怎么表示,科目三道路驾驶技能和安全文明驾驶常识考试满分分别为100分,成绩分别达到80和90分的为合格。...
- HDUOJ 6707 Shuffle Card
热门文章
- ROS入门-5.认识ROS及ROS的基本概念
- 232 Crossword Answers
- 蓝桥杯 基础练习 特殊回文数
- vscode 常用配置
- 机器学习实战(五)支持向量机SVM(Support Vector Machine)
- 零基础大数据学习框架
- 香港首个港人“首置项目”超额认购逾44倍
- python通过内置函数测试对象类型_python测试开发(01-递归函数+内置函数)
- 第2章[2.8] Ext JS的控制器类型及使用
- [设计模式-创建型]原型(Prototype)