资源描述

matlab 实现牛顿迭代法求解非线性方程组实现牛顿迭代法求解非线性方程组 已知非线性方程组如下 3*x1-cos(x2*x3)-1/2=0 x1^2-81*(x2+0.1)^2+sin(x3)+1.06=0 exp(-x1*x2)+20*x3+(10*pi-3)/3=0 求解要求精度达到 0.00001 ———————————————————————————————— 首先建立函数 fun 储存方程组编程如下将 fun.m 保存到工作路径中: function f=fun(x); %定义非线性方程组如下 %变量 x1 x2 x3 %函数 f1 f2 f3 syms x1 x2 x3 f1=3*x1-cos(x2*x3)-1/2; f2=x1^2-81*(x2+0.1)^2+sin(x3)+1.06; f3=exp(-x1*x2)+20*x3+(10*pi-3)/3; f=[f1 f2 f3]; ———————————————————————————————— 建立函数 dfun 用来求方程组的雅克比矩阵将 dfun.m 保存到工作路径中: function df=dfun(x); %用来求解方程组的雅克比矩阵储存在 dfun 中 f=fun(x); df=[diff(f,'x1');diff(f,'x2');diff(f,'x3')]; df=conj(df'); ———————————————————————————————— 编程牛顿法求解非线性方程组将 newton.m 保存到工作路径中: function x=newton(x0,eps,N); con=0; %其中 x0 为迭代初值 eps 为精度要求 N 为最大迭代步数 con 用来记录结果是否收敛 for i=1:N; f=subs(fun(x0),{'x1' 'x2' 'x3'},{x0(1) x0(2) x0(3)}); df=subs(dfun(x0),{'x1' 'x2' 'x3'},{x0(1) x0(2) x0(3)}); x=x0-f/df; for j=1:length(x0); il(i,j)=x(j); end if norm(x-x0)eps con=1; break; end x0=x; end %以下是将迭代过程写入 txt 文档文件名为 iteration.txt fid=fopen('iteration.txt','w'); fprintf(fid,'iteration'); for j=1:length(x0) fprintf(fid,' x%d',j); end for j=1:i fprintf(fid,'\n%6d ',j); for k=1:length(x0) fprintf(fid,' %10.6f',il(j,k)); end end if con==1 fprintf(fid,'\n 计算结果收敛!'); end if con==0 fprintf(fid,'\n 迭代步数过多可能不收敛!'); end fclose(fid); ———————————————————————————————— 运行程序 在 matlab 中输入以下内容 newton([0.1 0.1 -0.1],0.00001,20) ———————————————————————————————— 输出结果 ans = 0.5000 0.0000 -0.5236 ——————————————————————————————————————————————— 在 iteration 中查看迭代过程 iteration x1 x2 x3 1 0.490718 0.031238 -0.519661 2 0.509011 0.003498 -0.521634 3 0.500928 0.000756 -0.523391 4 0.500227 0.000076 -0.523550 5 0.500019 0.000018 -0.523594 6 0.500005 0.000002 -0.523598 7 0.500000 0.000000 -0.523599 计算结果收敛!

展开阅读全文

matlab牛顿法解非线性方程组,matlab实现牛顿迭代法求解非线性方程组.pdf相关推荐

  1. python牛顿法解非线性方程组_matlab实现牛顿迭代法求解非线性方程组.pdf

    matlab实现牛顿迭代法求解非线性方程组.pdf matlab 实现牛顿迭代法求解非线性方程组实现牛顿迭代法求解非线性方程组 已知非线性方程组如下 3*x1-cosx2*x3-1/20 x12-81 ...

  2. 非线性方程组牛顿迭代法matlab,matlab实现牛顿迭代法求解非线性方程组

    <matlab实现牛顿迭代法求解非线性方程组>由会员分享,可在线阅读,更多相关<matlab实现牛顿迭代法求解非线性方程组(5页珍藏版)>请在人人文库网上搜索. 1.matla ...

  3. c语言牛顿迭代法求解非线性方程组,利用牛顿迭代法求解非线性方程组

    最近一个哥们,是用牛顿迭代法求解一个四变量方程组的最优解问题,从网上找了代码去改进,但是总会有点不如意的地方,迭代的次数过多,但是却没有提高精度,真是 最近一个哥们,是用牛顿迭代法求解一个四变量方程组 ...

  4. Matlab利用牛顿迭代法求解非线性方程组

    我们得首先了解牛顿迭代法的原理是什么: 在这里,我以二阶非线性方程组为例: f1(x,y)=0 f2(x,y)=0,求解x,y 原理 假设方程组的一组近似解为(x0,y0),将方程f1(x,y)=0与 ...

  5. java 二元牛顿迭代法求解二元方程组

    1.之前讨论过利用牛顿一元迭代公司可以求解一元方程,本文档介绍如何求解二元方程组 在有些需要进行复杂计算的程序中我们有可能需要求解复杂的二元方程 (如建筑学程序) 假设存在如下方程组: xy -e^x ...

  6. 二分法和简单迭代法的优缺点_二分法和牛顿迭代法求解方程的比较.doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp高等教育&nbsp>&nbsp理学 二分法和牛顿迭代法求解方程的比较.doc5页 本文档一共 ...

  7. 迭代法求解非线性方程组(含python代码)

    1. 迭代法求解非线性方程组的原理         参考西安交大数值分析教材 2. 迭代法求解非线性方程组的计算过程 牛顿法求解非线性方程组的计算过程如下 弦割法与牛顿法类似,弦割法将牛顿法中的偏导数 ...

  8. mysql 立方根函数_Java实现牛顿迭代法求解平方根、立方根

    一.简介 牛顿迭代法(Newton's method)又称为牛顿-拉夫逊(拉弗森)方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法. ...

  9. 3.牛顿迭代法求解方程的根

    牛顿迭代法求解方程的根 引题:用牛顿迭代法求下列方程在值等于x附近的根: 2 x 3 − 4 x 2 + 3 x − 6 = 0 2x^3-4x^2+3x-6=0 2x3−4x2+3x−6=0 输入: ...

最新文章

  1. MFC显示位图 from http://blog.csdn.net/liuzhuomju/article/details/7299458
  2. mysql relaylog 慢_MySQL 主从同步延迟的原因及解决办法
  3. 部署站点支持Https访问的方法
  4. php curl伪装cookies,php curl 添加cookie伪造登陆抓取数据
  5. python 高维数据_用Sci-kit learn和XGBoost进行多类分类:Brainwave数据案例研究
  6. IM即时通讯服务将成联结谷歌、雅虎纽带(图)
  7. vscode 插件使用(前端力推)
  8. Java并发(理论知识)—— 线程安全性
  9. python目录名称无效怎么处理_Python目录和文件处理总结详解
  10. C语言之文件读写探究(五):rewind、ftell、fseek(文件指针偏移)
  11. java 获取工程编码格式_java 获取获取字符串编码格式
  12. python sqlite3
  13. scrapy学习笔记1---一个爬取的完整例子
  14. 连不通linux 27017,mongo --host 127.0.0.1:27017 报错连不上
  15. PMP模拟考试系统-pmp模拟考试题库
  16. CAD怎么统计图纸中的设备材料?
  17. pandas(一) Series和DataFrame
  18. tomcat出现404的原因_tomcat访问项目报404是什么原因?
  19. [基于kk搭建k8s和kubesphere] 3 kubekey下载
  20. 局部特征——角点检测(Harris,Shi-Tomasi)

热门文章

  1. Qt编写安防视频监控系统15-远程回放
  2. 聊天机器人chatbot搭建及思考(TensorFlow)(附代码)
  3. vhr部门管理数据库设计与编程
  4. 大数据分析,到底分析了啥?
  5. ps -aux 命令详解
  6. 你是如何学习Java的?
  7. proteus 上拉电阻
  8. 可编程彩灯控制器(8X8点阵)
  9. 学习笔记----层次分析法
  10. 为什么很多计算机专业大学生毕业后还会参加培训?