解非线性方程组

实验类型:●验证性实验  ○综合性实验  ○设计性实验

实验目的:进一步熟练掌握解非线性方程组牛顿迭代算法,提高编程能力和解算非线性方程组问题的实践技能。

实验内容:

设有非线性方程组(此方程组是非标准型)

实验说明:要求先严格按照牛顿迭代法解非线性方程组的算法步骤(参照课堂课件PPT)手工计算非线性方程组的解—手工迭代计算前三步,把计算及循环结束判定等详细过程写在A4规格的打印纸上;画出牛顿迭代法解非线性方程组的算法程序设计流程图;编写程序并用计算机计算、输出中间结果和最终结果,列表比较计算机计算中间结果(前三个近似解向量)与手工计算(前三个近似解向量)是否一致。列表对比后,给出比较后的验证结论。

实验步骤

  1. 要求上机实验前严格按照牛顿迭代法解非线性方程组的算法步骤(参照课堂PPT)对于非线性方程组标准化成F(P)=(f1(P),  f2(P))T=(f1(x1, x2),  f2(x1, x2))T=(x1,x2) T =0手工迭代计算三步(可使用计算器),并把计算过程及其循环结束判定过程步骤详细写在A4上。
  1. ) T =0手工迭代计算三步(可使用计算器),并把计算过程及其循环结束判定过程步骤详细写在A4上。
  2. 对手工计算做进一步的总结梳理,然后画出牛顿迭代法解非线性方程组的算法程序设计流程图流程图必须符合流程图的图符规范。应用Matlab语言在纸上编写出牛顿迭代法解非线性方程组算法的函数程序代码
  3. 编辑录入函数程序
  4. 输入数据(截图),调试程序并记录调试过程中出现的问题(截图)及修改程序的过程(截图),把你的截图及时粘贴在Word文档中,并对截图配上必要的文字说明,以便证明和描述你的实验过程真实可靠。
  5. 经反复调试后,运行程序并验证程序运行的前三步中间结果和手工计算的前三步中间结果是否一致,要求通过列表对比分析和论证程序运行的前三步中间结果和手工计算的前三步中间结果是否一致若不一致,必须找到不一致的原因,并预以纠正,最后明确给出对比分析结论 。
  6. 将手工计算过程及其验证结论拍照成JPG图片插入在实验报告的word 电子版中。   

数学建模阅读与思考:利用利用校园网-陕西科技大学-图书馆-国内数据库(http://library.sust.edu.cn/gnskj/index.jhtml),自己在“cnki知识网络服务平台”或者“万方数据库”查阅附件给定的数学建模文献资料、阅读文献资料写出分析建模的详细过程、求解计算过程、实际问题解答或阐释的内容。了解牛顿迭代法解非线性方程组的应用。

实验报告书写要求:根据实验情况和结果撰写并递交实验报告。实验报告应当有算法原理简介,算法流程图,程序代码,运行调试记录,计算结果阐释;对于数学建模的应用问题要求利用校园网-陕西科技大学-图书馆-国内数据库(http://library.sust.edu.cn/gnskj/index.jhtml),自己在“cnki知识网络服务平台”或者“万方数据库”查阅附件给定的文献资料、阅读文献资料并写出分析建模的详细过程求解计算过程、实际问题解答或阐释的内容在A4纸上对给定的非线性方程组和文献上的非线性方程组问题用牛顿迭代法手工迭代计算前三步,手工计算要求所有数据保留6位小数,然后将手工迭代计算前三步的计算结果与计算机程序计算的前三步结果进行比较,若数据整数及小数点后4位小数都相同则认为是相同的,若不同,要分析不同的原因并予以校正,经分析、校正后给出比较的结论 将手工计算过程及其验证结论拍照成JPG图片插入在实验报告的word 电子版中。

实验报告打印和装订顺序要求

实验报告打印要求:在A4纸上将实验报告的Word文档双面打印;打印的字迹要清晰,报告内容文字或截图上的文字打印后,要确保字迹清晰可见,若字迹不清影响评阅,报告得分将酌情扣减。

实验报告装订顺序

  • 实验任务(本文档版式不得做任何改动);
  • 实验报告正文(Word文档);
  • 可以将A4纸上详细手工计算过程拍照成JPG图片插入在实验报告的word 电子版中随Word文档双面打印。
  • 左边沿装订

实验总结(学会了......; 掌握了......; 训练了......; 发现了......; 今后学习中......有待提高。)

程序代码

电子报告word文件命名规则:专业班级-完整学号-实验X-姓名.doc, 如信息123班学号为201212030315的郭海涛同学实验2报告word文件命名则应是:信息123-201212030315-实验2-郭海涛.docx, 其中 .docx是Word文件扩展名

特别提醒:学委负责检查电子文件命名规范,命名不规的将不接收。每人必需提交电子报告和纸质报告各一份(两者内容一致)。本实验任务书版式不得做任何改动。电子报告以班为单位提交压缩包.

附件:数学建模参考文献材料:

利用三颗导航卫星进行二维定位的解算模型及其仿真解算

朱喜明,王存良*

(中国电子科技集团第27研究所,郑州 450005)

 :给出了用户接收机只收到三颗导航卫星信号时的二维定位解算模型及 其解算方法,重点介绍了解算方法中接收机概略坐标的求法及利用得到的概略坐标 求解接收机位置和钟差,并做了仿真解算。从卫星和接收机不同位置的很多次仿真 解算结果表明,接收机位置和钟差能够极收收敛,通常迭代两次就能得到非常好的结 果,完全适合工程应用。

关键词:二维定位;概略坐标;迭代求解

此页及其前的内容为实验任务内容,实验任务版式不得做任何更改;实验报告从下页开始编

算法原理:

手工迭代计算:

(1)x0 = [2.00; 0.25];

(2)x0 = [-0.20; 1.00];

(3)x0 = [-1.00; -1.00];

程序代码:

function main()

    % 初始值

    P0 = [2.00; 0.25];

    fprintf('初始迭代值(2.00, 0.25):\n');

    newton_method(P0);

    P0 = [-0.20; 1.00];

    fprintf('初始迭代值(-0.20, 1.00):\n');

    newton_method(P0);

    P0 = [-1.00; -1.00];

    fprintf('初始迭代值 (-1.00, -1.00):\n');

    newton_method(P0);

end

function newton_method(P0)

    F = @(P) [P(1)^2 - 2*P(1) - P(2) + 0.5; P(1)^2 + 4*P(2)^2 - 4];

    J = @(P) [2*P(1)-2, -1; 2*P(1), 8*P(2)];

    tol = 1e-6;

    max_iter = 100;

    P = P0;

    for i = 1:max_iter

        % 计算函数值和雅可比矩阵

        f = F(P);

        Jf = J(P);

        % 计算更新量

        delta_P = -inv(Jf) * f;

        % 更新变量

        P = P + delta_P;

        % 判断收敛

        if norm(delta_P) < tol

            fprintf('经过 %d 次迭代\n', i);

            fprintf('最后: x1 = %.6f, x2 = %.6f\n', P(1), P(2));

            break;

        end

         fprintf('第%d次迭代近似值为: x1 = %.6f, x2 = %.6f\n',i, P(1), P(2));

    end

    % 判断发散

    if i == max_iter

        fprintf("牛顿迭代法发散\n");

    end

end

手工计算结果与程序运行结果前三次比对分析:

(1)x0=[2.00;0.25];

迭代次数

手工x1

Matlab的x1

手工x2

Matlab的x2

第一次

1.906250

1.906250

0.312500

0.312500

第二次

1.900691

1.900691

0.311213

0.311213

第三次

1.900677

1.900677

0.311219

0.311219

(2)x0=[-0.20;1.00];

迭代次数

手工x1

Matlab的x1

手工x2

Matlab的x2

第一次

-0.222449

-0.222449

0.993878

0.993878

第二次

-0.222215

-0.222215

0.993808

0.993808

第三次

-0.222215

-0.222215

0.993808

0.993808

(3)x0=[-1.00;-1.00];

迭代次数

手工x1

Matlab的x1

手工x2

Matlab的x2

第一次

0.166667

0.166667

-1.166667

-1.166667

第二次

0.873543

0.873543

-0.983683

-0.983683

第三次

1.756130

1.756130

-0.707227

-0.707227

我将手工计算和程序计算的前三步结果进行了比较,发现整数及小数点后4位小数都相同,说明程序计算的结果与手工计算结果一致。

数学建模

1.分析建模

给出了用户接收机只收到三颗导航卫星信号时的二维定位解算模型及其解算方法,重点介绍了解算方法中接收机概略坐标的求法及利用得到的概略坐标求解接收机位置和钟差,并做了仿真解算。从卫星和接收机不同位置的很多次仿真

解算结果表明,接收机位置和钟差能够极收收敛,通常迭代两次就能得到非常好的结果,完全适合工程应用。

为了简化计算,假定已利用了导航电文中的卫星星历表预报参数,算出了三颗卫星在地心空间直角坐标系中的坐标分别为(x1,y1,z1)、(x2,y2,z2)、 (x3,y3,z3)海平面上某一位置在地心空间直角坐标系中的坐标为(x,y,z),设在该位置的用户接收机观测三颗星得到伪距观测值,且已进行了各项误差修正(包括卫星钟钟差改正),接收机时钟相对该导航系统时间基准的钟差为ΔtR;则可得观测方程

ρj=Rj+cΔtR(j=1,2,3)

可写为

ρj=[(x-xj)2+(y-yj)2 +(z-zj)2]1/2+d…(1)

式中d=cΔtR,为接收机钟差的等效距离偏差。

由于接收机在海面上,所以其坐标满足方程

x^2/a^2+y^2/a^2+z^2/b^2=1…(2)

式中a=6378140m,b=6356755.28816m

解(1)、(2)组成的方程组,可得x,y,z,d,进而算出接收机所在位置的经度L、纬度B和钟差ΔtR。经仿真解算证明该方程组正确可行,满足实用需求。(如果x,y,z用经纬度表示出来,方程组(1)就变成了关于L、B、d的超越方程组,非常难解)

2. 求解计算过程

上述定位方程组的解法,采用迭代求解。迭代求解首先要解决迭代初始解问题,这里由于d的符号不能事先确定,所以采用先求出接收机的概略坐标(接收机概略坐标指的是接收机在地心空间直角坐标系中的大概位置坐标),并作为初值求出概略坐标的修正量和d;将概略坐标加上其修正量作为第二次的迭代值再重新解算,直到概略坐标的修正量满足要求为止。

2)计算

3)计算

A=m22+n22+1,B=2(m2x1+n2y1-z1-m1m2-n1n2)

C=m12+n12-2m1x1-2n1y1-ρ12+x12+y12+z12

若B2-4AC<0,则方程组(1)无实数解,终止求解过程。此种情况无法定位,该导航系统通常会通过其完好性监测告知用户。

地球表面上二维定位仿真计算。由题易知三颗卫星的高度皆为20200km,某一时刻其经纬度分别为40°、112°,35°、114°,32°、117°;用户接收机在海平面上某一位置的经纬度假定为35°、115°。之所以先假定出接收机的位置 ,是为了与仿真计算得到的接收机位置作比较,观察算法误差。

通过MATLAB牛顿迭代法计算,三颗卫星的地心大地坐标转换为地心空间直角坐标分别为:

x1=-7629540.435m,y1=18883775.23m,z1=17062297.19m;

x2=-8857626.141m,y2=19894554.04m,z2=15224112.62m;

x3=-10235048.89m,y3=20087414.48m,z3=14064802.14m。

将x1、y1、z1的值代入方程所得的值非常接近1;将x2、y2、z2的值代入方程的左端所得的值远大于1;所以x1、y1、z1的的值是接收机的概略坐标。

3.实际问题解答或阐释的内容

经过大量仿真表明:对于大地高在45m以下的地区,可以按照海平面上的二维定位进行计算,其定位误差随着大地高的减小而变小;对于大地高在45m以上的地区,按照海平面上的二维定位进行计算,通常定位误差比概略位置误差还大,所以不再应用地球椭球方程,应采用方程组进行定位,将得到的两组解分别转换为地心大地坐标系中的坐标,其大地高的绝对值较小的那组解即为接收机所在的位置,由于忽略了接收机的钟差,这种情况定位误差较大。

实验总结:

学会了使用牛顿迭代法求解非线性方程组的基本原理和方法。通过实验,我了解到牛顿迭代法是一种有效的数值计算方法,可以用于求解复杂的非线性方程组。

掌握了编写 MATLAB 程序实现牛顿迭代法的能力。在实验中,我学会了如何利用 MATLAB 编写程序来求解非线性方程组,提高了我的编程能力。

训练了分析和解决实际问题的能力。实验要求结合校园网数据库中的文献资料进行数学建模分析,这锻炼了我的问题分析和求解能力,提高了我的实际应用能力。

发现了牛顿迭代法的收敛性和计算精度的影响因素。在实验中,我发现初始值的选择对于牛顿迭代法的收敛性和计算精度有很大影响,这启示我在实际应用中要注意初始值的选择。

今后学习中需要进一步提高数学建模和算法设计的能力。通过本次实验,我意识到数学建模和算法设计是非常重要的能力,今后我将继续学习和提高这方面的能力,以更好地应用于实际问题的求解中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/913002.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JavaWeb合集23-文件上传

二十三 、 文件上传 实现效果&#xff1a;用户点击上传按钮、选择上传的头像&#xff0c;确定自动上传&#xff0c;将上传的文件保存到指定的目录中&#xff0c;并重新命名&#xff0c;生成访问链接&#xff0c;返回给前端进行回显。 1、前端实现 vue3AntDesignVue实现 <tem…

设计模式-七个基本原则之一-开闭原则 + SpringBoot案例

开闭原则:(SRP) 面向对象七个基本原则之一 对扩展开放&#xff1a;软件实体&#xff08;类、模块、函数等&#xff09;应该能够通过增加新功能来进行扩展。对修改关闭&#xff1a;一旦软件实体被开发完成&#xff0c;就不应该修改它的源代码。 要看实际场景&#xff0c;比如组内…

图形几何之美系列:仿射变换矩阵(二)

“ 在几何计算、图形渲染、动画、游戏开发等领域&#xff0c;常需要进行元素的平移、旋转、缩放等操作&#xff0c;一种广泛应用且简便的方法是使用仿射变换进行处理。相关的概念还有欧拉角、四元数等&#xff0c;四元数在图形学中主要用于解决旋转问题&#xff0c;特别是在三维…

python识别ocr 图片和pdf文件

#识别图片 pip3 install paddleocr pip3 install paddlepaddle#识别pdf pip3 install PyMuPDF 重点&#xff1a;路径不能有中文&#xff0c;不然pdf文件访问不了 from paddleocr import PaddleOCR from rest_framework.response import Response from rest_framework.views im…

使用Ubuntu快速部署MinIO对象存储

想拥有自己的私有云存储&#xff0c;安全可靠又高效&#xff1f;MinIO是你的理想选择&#xff01;这篇文章将手把手教你如何在Ubuntu 22.04服务器上部署MinIO&#xff0c;并使用Nginx反向代理和Let’s Encrypt证书进行安全加固。 即使你是新手&#xff0c;也能轻松完成&#xf…

EasyUI弹出框行编辑,通过下拉框实现内容联动

EasyUI弹出框行编辑&#xff0c;通过下拉框实现内容联动 需求 实现用户支付方式配置&#xff0c;当弹出框加载出来的时候&#xff0c;显示用户现有的支付方式&#xff0c;datagrid的第一列为conbobox,下来选择之后实现后面的数据直接填充&#xff1b; 点击新增&#xff1a;新…

【神经科学学习笔记】基于分层嵌套谱分割(Nested Spectral Partition)模型分析大脑网络整合与分离的学习总结

一、前言 1.学习背景 最近在学习脑网络分析方法时&#xff0c;笔者偶然读到了一篇发表在Physical Review Letters上的文章&#xff0c;文章介绍了一种名为嵌套谱分割(Nested-Spectral Partition, NSP)的方法&#xff0c;用于研究大脑功能网络的分离和整合特性。 传统的脑网络分…

如何优雅处理异常?处理异常的原则

前言 在我们日常工作中&#xff0c;经常会遇到一些异常&#xff0c;比如&#xff1a;NullPointerException、NumberFormatException、ClassCastException等等。 那么问题来了&#xff0c;我们该如何处理异常&#xff0c;让代码变得更优雅呢&#xff1f; 1 不要忽略异常 不知…

海量数据迁移:Elasticsearch到OpenSearch的无缝迁移策略与实践

文章目录 一&#xff0e;迁移背景二&#xff0e;迁移分析三&#xff0e;方案制定3.1 使用工具迁移3.2 脚本迁移 四&#xff0e;方案建议 一&#xff0e;迁移背景 目前有两个es集群&#xff0c;版本为5.2.2和7.16.0&#xff0c;总数据量为700T。迁移过程需要不停服务迁移&#…

macOS开发环境配置与应用开发(详细讲解)

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 1. 引言 macOS作为Apple公司推出的桌面操作系统&#xff0c;以其稳定性、优雅的用户界面和强大的开发工具吸引了大量开发者。对于…

【深度学习滑坡制图|论文解读3】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法

【深度学习滑坡制图|论文解读3】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法 【深度学习滑坡制图|论文解读3】基于融合CNN-Transformer网络和深度迁移学习的遥感影像滑坡制图方法 文章目录 【深度学习滑坡制图|论文解读3】基于融合CNN-Transformer网络和…

前端学习之ES6+

1.ES6是什么 ES6&#xff0c;全称是ECMAScript 6&#xff0c;是JavaScript语言的下一代标准&#xff0c;由ECMA国际组织在2015年6月正式发布。ES6也被称作ECMAScript 2015&#xff0c;从这个版本开始&#xff0c;ECMA组织决定每年发布一个新的ECMAScript版本&#xff0c;以使J…

查缺补漏----用户上网过程(HTTP,DNS与ARP)

&#xff08;1&#xff09;HTTP 来自湖科大计算机网络微课堂&#xff1a; ① HTTP/1.0采用非持续连接方式。在该方式下&#xff0c;每次浏览器要请求一个文件都要与服务器建立TCP连接当收到响应后就立即关闭连接。 每请求一个文档就要有两倍的RTT的开销。若一个网页上有很多引…

【广西】《广西壮族自治区本级政务信息化建设和运维项目预算支出标准》(桂财建〔2023〕102号)-省市费用标准解读系列09

《广西壮族自治区本级政务信息化建设和运维项目预算支出标准》&#xff08;桂财建〔2023〕102号&#xff09;是广西壮族自治区财政厅于2023年9月26日发布的费用标准&#xff08;了解更多可直接关注我们咨询&#xff09;。我司基于专业第三方信息化项目造价机构角度&#xff0c;…

Linux基础-常用操作命令详讲

Linux基础-常用操作命令详讲 一、openssl加密简单介绍 1. 生成加密的密码散列&#xff08;password hash&#xff09;​编辑 1.1 常见的选项总结表 1.2 加密参数详解 2. 自签名证书 3. 证书转换 二、文件管理 1. 创建空文件 ​编辑 2. 删除文件 4. 新建目录 ​编辑…

ALB搭建

ALB: 多级分发、消除单点故障提升应用系统的可用性&#xff08;健康检查&#xff09;。 海量微服务间的高效API通信。 自带DDoS防护&#xff0c;集成Web应用防火墙 配置&#xff1a; 1.创建ECS实例 2.搭建应用 此处安装的LNMP 3.创建应用型负载均衡ALB实例 需要创建服务关联角…

C语言笔记(字符串函数,字符函数,内存函数)

目录 前言 1.字符串函数 1.1.strlen 1.2.strcpy 1.3.strcat 1.4.strcmp 1.5.strncpy 1.6.strncat 1.7.strncmp 1.8.strstr 1.9.strtok 1.10.strerror 2.字符函数 2.1字符分类函数 2.2字符转换函数 3.内存函数 3.1.mencpy 3.2.memmove 3.3.memcmp 前言 本文重…

HCIP-HarmonyOS Application Developer V1.0 笔记(五)

弹窗功能 prompt模块来调用系统弹窗API进行弹窗制作。 当前支持3种弹窗API&#xff0c;分别为&#xff1a; 文本弹窗&#xff0c;prompt.showToast&#xff1b;对话框&#xff0c;prompt.showDialog&#xff1b;操作菜单&#xff0c;prompt.showActionMenu。 要使用弹窗功能&…

Linux相关概念和易错知识点(20)(dentry、分区、挂载)

目录 1.dentry &#xff08;1&#xff09;路径缓存的原因 &#xff08;2&#xff09;dentry的结构 ①多叉树结构 ②file和dentry之间的联系 ③路径概念存在的意义 2.分区 &#xff08;1&#xff09;为什么要确认分区 &#xff08;2&#xff09;挂载 ①进入分区 ②被挂…

Redis 缓存击穿

目录 缓存击穿 什么是缓存击穿&#xff1f; 有哪些解决办法&#xff1f; 缓存穿透和缓存击穿有什么区别&#xff1f; 缓存雪崩 什么是缓存雪崩&#xff1f; 有哪些解决办法&#xff1f; 缓存预热如何实现&#xff1f; 缓存雪崩和缓存击穿有什么区别&#xff1f; 如何保…