newton迭代法求近似值matlab,Newton迭代法求函数极小值点 Matlab程序-程序员宅基地

技术标签: newton迭代法求近似值matlab  

clear all

clc

%Newton迭代法求解极小值点

%090311

%=====================================

%定义函数

disp '函数 f(x) 为:'

syms x1 x2

f=(x1-2)^4+(x1-2)^2*x2^2+(x2+1)^2

disp '初始点的值:'

x0=[1;1]

%=====================================

%求函数的梯度和海色阵

disp '函数f的梯度:'

g=jacobian(f,[x1;x2])

disp '函数f的Hesse矩阵:'

G=jacobian([g(1);g(2)],[x1,x2])

%=====================================

%定义迭代的最大次数

n=10;

%=====================================

%一些初始值的计算

g0=subs(g,{x1,x2},{x0(1),x0(2)})';

G0=subs(G,{x1,x2},{x0(1),x0(2)});

f0=subs(f,{x1,x2},{x0(1),x0(2)});

%=====================================

%迭代点集合 x和函数值F的初始化

x=zeros(2,n);

F=zeros(1,n);

%运用Newton方程解出下一近似值

x(:,1)=x0-inv(G0)*g0; %注:用点乘有误

A=x(:,1);

F(1)=subs(f,{x1,x2},{A(1),A(2)});

%=====================================

%定义误差初始值为10

deta=10;

i=1;

%循环用求出的近似解迭代Newton方程

%求出下一个近似解,并在规定的误差范围内

while deta>=1e-10&i<10

A=x(:,i);

gi=subs(g,{x1,x2},{A(1),A(2)})';

Gi=subs(G,{x1,x2},{A(1),A(2)});

i=i+1;

x(:,i)=x(:,i-1)-inv(Gi)*gi;

A=x(:,i);

F(i)=subs(f,{x1,x2},{A(1),A(2)});

deta=F(i)-F(i-1);

end

k=(1:n+1)';

F=[f0 F]';

x=[x0,x]';

disp '====================================================='

disp '迭代的各步结果如下:'

disp ' k x(k) F{x(k)}'

[k x F]

%===================================== 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39549110/article/details/115893139

智能推荐

进击的雨燕-------------------高级运算符-程序员宅基地

文章浏览阅读92次。除了在之前介绍过的基本运算符,Swift 中还有许多可以对数值进行复杂操作的高级运算符。这些高级运算符包含了在 C 和 Objective-C 中已经被大家所熟知的位运算符和移位运算符。与C语言中的算术运算符不同,Swift 中的算术运算符默认是不会溢出的。所有溢出行为都会被捕获并报告为错误。如果想让系统允许溢出行为,可以选择使用 Swift 中另一套默认支持溢出的运算符,比如溢出加..._"operator function\" \"运算符函数"

plc(Power Line Communication)通信测试程序_plc 通讯测试程序-程序员宅基地

文章浏览阅读1.5k次。plc(Power Line Communication)通信测试程序 plconfig.c /* plconfig.c version 0.2 Source code for Intellon-based Powerline bridge configuration tool Copyright (C) 2002-2003 Manuel Kasper &lt;..._plc 通讯测试程序

C++获取(32位)Kernel32 LoadLibrary等地址,并写入txt文件_c++ kernel32-程序员宅基地

文章浏览阅读2.3k次。代码:// GetKernel32Info.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"using namespace std;int _tmain(int argc, _TCHAR* argv[]){ ofstream txtfile; txtfile.open(".\\kernel32info.txt",std::ios::out..._c++ kernel32

Python NumPy rot90(),旋转_numpy旋转90度-程序员宅基地

文章浏览阅读5.2k次,点赞2次,收藏6次。Python NumPy rot90()是一个内置函数,用于将数组的元素沿指定的轴旋转90度。 rot90()可以作为NpPy作为np导入,我们可以创建多维数组并借助NumPy导出其他数学统计信息,NumPy是Python中的一个库。rot90()函数用于在轴指定的平面中将数组旋转90度。旋转方向是从第一轴到第二轴。二维或更多维的数组。数组旋转90度的次数。numpy.rot90 (input_array, k = 1, axes = (0, 1))Input_array:它描述了要执行旋转的n维数_numpy旋转90度

云计算和数据库相关论文阅读_数据库学习目标论文-程序员宅基地

文章浏览阅读5.3k次。这个是一个汇总贴,希望能不断更新文档的目标和内容: 云计算/数据库相关的论文很多,这里的学习笔记,主要是为了自己能够在读完一篇论文后能多少总结一下,可长可短,免得看过就忘,另一方面也希望做分享之用,对一些想要了解大意的朋友有所帮助 用中文写的原因很简单,笔记嘛,求快,用中文写也避免自己无脑拷贝,如果你习惯看英文,直接看论文原文就好了;) 最后,个人能力有限,也是_数据库学习目标论文

ESP32呼吸灯 PWM_ledc_timer_config_t-程序员宅基地

文章浏览阅读2k次。这个实验的功能是使用 PWM 去控制板子上的彩灯实现渐变效果。 这个实验的代码为工程“3_8_pwm”目录。3.8.1. 实验内容(1) 学习如何控制 LED 灯及硬件原理(2) 学习 ESP32 的 PWM(ledc)功能的配置(3) 掌握 PWM(ledc)控制 LED 彩灯渐变程序3.8.2. 硬件设计和原理LED 彩灯硬件设计在 3.3 节已经讲解过了,我们知道通过 IO15、IO16 和 IO32 输出高低电平就可以控制 彩灯亮灭了。在这个实验里,我们是通过 IO1_ledc_timer_config_t

随便推点

关于处理串口出现分段接收数据的情况_使用串口发送数据分两段接收怎么办?-程序员宅基地

文章浏览阅读8.7k次。在进行串口接收的时候由于串口线和外界因素的影响会出现数据接收出现分段的情况,本来发送端发出的是一段完整的数据但是接收端却接收到的是两段甚至是三段数据。以上接收端会出现类似于两段接收的情况但是中间间隔极短,所以最简单的是在一接收到数据之后进行读秒倒计时譬如在1.5s内也进行数据接收和数据拼接,1.5秒后在对数据进行拼接判断是不是符合要求的数据。..._使用串口发送数据分两段接收怎么办?

Oracle GoldenGate Downloads 12C_goldengate 12 下载-程序员宅基地

文章浏览阅读1.2k次。This page contains links to the most popular, current release of Oracle GoldenGate software on various platforms. More recent updates may be available from My Oracle Support, on the Patches and Upda_goldengate 12 下载

如何成为一名软件架构师_如何成为app领域架构师-程序员宅基地

文章浏览阅读469次。Daniel Mohl是一名专业的软件工程师/架构师,他的兴趣包括理解各种复杂的编程语言、企业应用架构以及如何搭建业务与技术,他通晓F#、C#、CoffeeScript、JavaScript、Erlang、ASP.NET、MVC、WPF、WCF、Sliverlight、SQL Server等技术。有着多年的软件开发经验。他经常会被一些有潜力和有前途的程序员问到:“我要怎么做才能成为一名架构_如何成为app领域架构师

用notepad++ 打造编码神器_notepad 编码规约-程序员宅基地

文章浏览阅读8.6k次。notepad++ 是一款很优秀的轻量级编辑器,为大多数程序员所喜爱。notepad++有丰富的插件,推荐以下4个,light explorer ,quicktext ,functionlist和zen coding。_notepad 编码规约

java发送邮件,带跳转链接地址(包含遇见的坑)_java 发送邮件内容,跳转地址用a链接-程序员宅基地

文章浏览阅读6k次,点赞2次,收藏15次。java发送邮件带url、带html 、带跳转页面①创建密码验证器类(不知道干啥用的)package com.mail.test; import javax.mail.Authenticator;import javax.mail.PasswordAuthentication; public class MailAuthenticator extends Authenticator { public MailAuthenticator(String userName,String use_java 发送邮件内容,跳转地址用a链接

18.glance服务介绍及配置swift作为后端存储_swift_store_auth_address什么意思-程序员宅基地

文章浏览阅读6.5k次,点赞3次,收藏26次。镜像中的几种状态:active 镜像已经在正确的上传并可以使用了saving 镜像正在被上传queued 这个镜像的ID已经被记录了,但是镜像并没有真的上传killed 上传失败,完全不可用 glance主要的两个服务:glance-api 接收用户的各种请求glance-registry 和后台数据库进行交互 软件安装:yum list *g..._swift_store_auth_address什么意思

推荐文章

热门文章

相关标签