数学实验第三版(主编:李继成 赵小艳)课后练习答案(十一)(1)(2)(3)

目录

实验十一:非线性方程(组)求解

练习一

练习二

练习三


实验十一:非线性方程(组)求解

练习一

1.求莱昂纳多方程 的解

clc;clear;
p=[1,2,10,-20];
roots(p)

ans =

  -1.6844 + 3.4313i

  -1.6844 - 3.4313i

   1.3688 + 0.0000i

2.求方程 的解.

clc;clear;
f=@(x)exp(x)+10*x-2;
ezplot(f);
grid on
fzero(f,[-2,2])

ans =

    0.0905

练习二

用“二分法”求解下列问题(要求精度达到 )

1.求圆 与曲线 的两个交点坐标

clc;clear;
ezplot('exp(-x)');
hold on
ezplot('x^2+y^2-2');
axis([-5,5,-5,5]);
%精度为10^-5,由图像知有两个交点,我们分别在[-0.5,0.5]和[1,1.5]两个区间二分
f=@(x)sqrt(2-x^2)-exp(-x);
a1=-0.5;a2=0.5;
while abs(a2-a1)>10^-4
    c1=(a1+a2)/2;
    if f(c1)==0
        break;
    end
    if f(c1)<0
        a1=c1;
    end
    if f(c1)>0
        a2=c1;
    end
end
c1
a1=1;a2=1.5;
while abs(a2-a1)>10^-4
    c1=(a1+a2)/2;
    if f(c1)==0
        break;
    end
    if f(c1)>0
        a1=c1;
    end
    if f(c1)<0
        a2=c1;
    end
end
c1

c1 =

   -0.3203

c1 =

    1.3922

注:函数的单调性不同时,传递值时的判断条件不同。

2.求方程 的最大正数解和最小负数解,并分别确定二分区间的次数

clc;clear;
ezplot('3*x^2-exp(x)');grid;
%精度为10^-4,该方程有两个解,两个正数解,一个负数解
f=@(x)-(3*x^2-exp(x));
a1=-1;a2=0;%在这里修改数据,第二次a1=4,a2=5
while abs(a2-a1)>10^-4
    c1=(a1+a2)/2;
    if f(c1)==0
k=k+1;
        break;
    end
    if f(c1)<0
        a1=c1;
    end
    if f(c1)>0
        a2=c1;
    end
k=k+1;
end
c1 ,k

3.求方程 ​​​​​​的正数解

clc;clear;
ezplot('1-x-sin(x)');grid;
%精度为10^-4
f=@(x)-(1-x-sin(x));
a1=0;a2=1;k=0;
while abs(a2-a1)>10^-4
    c1=(a1+a2)/2;
    if f(c1)==0
        k=k+1;
        break;
    end
    if f(c1)<0
        a1=c1;
    end
    if f(c1)>0
        a2=c1;
    end
    k=k+1;
end
c1,k

c1 =0.5109

k =14

练习三

1.方程 在(0,4)内有唯一的实数解,现构造以下三种迭代函数:

(1),迭代初值;

(2) 迭代初值 ;

(3) ,迭代初值

分别用给出的3种迭代函数构造迭代序列观察这些迭代序列是否收敛,若收敛能否收敛到方程的解?除此之外,你还能构造出其他收敛的选代序列吗?

先画出图像:

clc;clear; 
ezplot('x^2+x-4');grid;

(1)

clc;clear; 
a0=4;a1=0;x0=[4];k=0;
while abs(a0-a1)>1.0e-3
    a1=a0;
    a0=4-a0^2;
    x0=[x0,a0];
    k=k+1;
end
x0

x0 =

  1.0e+274 *

  列 1 至 10

    0.0000   -0.0000   -0.0000   -0.0000   -0.0000   -0.0000   -0.0000   -0.0000   -0.0000   -4.9971

  列 11 至 12

      -Inf      -Inf

显然,该迭代函数不收敛。

(2)

clc;clear; 
format long
a0=4;a1=0;x0=[4];k=0;
while abs(a0-a1)>1.0e-5
    a1=a0;
    a0=4/(1+a0);
    x0=[x0,a0];
    k=k+1;
end
x0,k

x0 =

  列 1 至 5

   4.000000000000000   0.800000000000000   2.222222222222222   1.241379310344828   1.784615384615385

  列 6 至 10

   1.436464088397790   1.641723356009070   1.514163090128755   1.590986684875384   1.543813414152062

  列 11 至 15

   1.572442372442373   1.554942510219287   1.565592957180350   1.559093771599724   1.563053313790665

  列 16 至 20

   1.560638625220067   1.562110311311980   1.561213029095425   1.561759976448632   1.561426533622873

  列 21 至 25

   1.561629797885483   1.561505883208351   1.561581422171047   1.561535372398912   1.561563444760846

  列 26 至 28

   1.561546331472360   1.561556763917999   1.561550404169786

k=27

由以上数列知,该迭代函数收敛,且收敛于1.56155.

(3)

clc;clear; 
format long
a0=4;a1=0;x0=[4];k=0;
while abs(a0-a1)>1.0e-5
    a1=a0;
    a0=a0-(a0^2+a0-4)/(2*a0+1);
    x0=[x0,a0];
    k=k+1;
end
x0,k

x0 =

  列 1 至 5

   4.000000000000000   2.222222222222222   1.641723356009070   1.563053313790665   1.561553358481398

  列 6

   1.561552812808902

k =5

其他方法:

clc;clear; 
format long
a0=4;a1=0;x0=[4];k=0;
while abs(a0-a1)>1.0e-5
    a1=a0;
    a0=sqrt(4-a0);%构造x=sqrt(4-x)
    x0=[x0,a0];
    k=k+1;
end
x0,k

x0 =

  列 1 至 5

   4.000000000000000                   0   2.000000000000000   1.414213562373095   1.608038070950718

  列 6 至 10

   1.546596886408764   1.566334291775302   1.560021060186271   1.562043193965432   1.561395787759967

  列 11 至 14

   1.561603090493879   1.561536714107651   1.561557967509483   1.561551162303213

k =13

2.用单点弦截法求示例3中方程解的近似值(误差< ).

注:示例三中方程为:

显然,该二次方程由两个解:一个正解和一个负解。

我们分别选取(2,3)、(1,-1)和(-3,3)、(-2,-1)作为初始弦端点进行迭代。

clc;clear; 
format long
f=@(x)x^2+x-3;
%正解
a=1;b=2;t=a;k=0;%这里可以修改数值
while abs(t)>1.0e-5
      m=b-(b-a)/(f(b)-f(a))*f(b);
      t=m-a;
      a=m;
      k=k+1;
end
m,k

m =1.302774668159284

k =7;

负解的情况令a=-2,b=-3即可。(其他不用变)

m =-2.302774668159283

k = 7

3.用双点弦截法求方程的解(误差<).

首先画出函数图形。

clc;clear; 
f=inline('2^x-x^2-1');
ezplot(f);grid;

由图形知该函数有三个零点。

clc;clear; 
format long;
x0=-0.5;x1=0.5;k=0;%在这里更改x0和x1值
while abs(x0-x1)>1.0e-5
    x2=x1-f(x1)/(f(x1)-f(x0))*(x1-x0);
    x0=x1;
    x1=x2;
    k=k+1;
end
     x2

x2 = 2.597847652721268e-13

x2 =0.999999996956345

x2 =4.257461915372301

注:这里我们要注意刚开始时,谁做为x0,谁做为x1.经过我的观察,x0点一定符合

同号这个条件,而x1即为另一个点。

4.用牛顿切线迭代法求方程 的解,你能否构造出其他形式的选代序列,使其收敛到该方程的一个解?

首先我们要判断该方程的解在哪个区间内,画出该函数的图像;其次,再该区间内该函数的凸凹性是怎么样的。

clc;clear; 
syms x
f=x^2-2*x*exp(x)+exp(-x);
figure(1)
ezplot(f);grid;
f2=diff(f,x,2);
figure(2)
ezplot(f2);grid;

 由上图分析知,区间[0,1]包含零点,且该范围内的函数为凸函数。

clc;clear; 
f=inline('x^2-2*x*exp(x)+exp(-x)');
f1=inline('2*x-2*exp(x)-2*x*exp(x)-exp(-x)');
m=min(abs(f1(0)),abs(f1(1)));a=0;b=1;k=0;x0=1;
while abs(f(x0))>m*1.0e-5
       x1=x0-f(x0)/f1(x0);
          k=k+1;
          x0=x1;
end
x0,k

x0 =0.305710729721677

k =4

其他迭代:不妨使用一下双点弦截法

clc;clear; 
format long
f=inline('x^2-2*x*exp(x)+exp(-x)');
x0=1;x1=0;
while abs(x0-x1)>1.0e-5
    x2=x1-f(x1)/(f(x1)-f(x0))*(x1-x0);
    x0=x1;
    x1=x2;
end
x0

x0 =0.305707037220051

本文由作者自创,由于时间原因,难免出现些许错误,还请大家多多指正。创作不易,请大家多多支持。

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

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

相关文章

数据结构与算法:二叉树(寻找最近公共祖先、寻找后继节点、序列化和反序列化、折纸问题的板子和相关力扣题目)

最近公共祖先 第一版&#xff08;前提&#xff1a;p和q默认存在于这棵树中&#xff09; 可以层序遍历每个节点时用个HashMap存储该结点和其直接父节点的信息。然后从p开始溯源&#xff0c;将所有的父节点都添加到一个HashSet集合里。然后从q开始溯源&#xff0c;每溯源一步看…

题目:3.神奇的数组(蓝桥OJ 3000)

问题描述&#xff1a; 解题思路&#xff1a; 官方&#xff1a; 我的总结&#xff1a; 利用双指针遍历每个区间并判断是否符合条件&#xff1a;若一个区间符合条件则该区间在其左端点不变的情况下的每一个子区间都符合条件&#xff0c;相反若一个区间内左端点固定情况下有一个以…

ssm的网上招聘系统(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; ssm的网上招聘系统&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring SpringMv…

什么是位段?位段的作用是什么?他与结构体有什么关系?

目录 1.什么是位段&#xff1f; 2.位段的内存分配 判断当前机器位段的内存分配形式 1.什么是位段&#xff1f; 位段的声明和结构是类似的&#xff0c;有两个不同&#xff1a; 1.位段的成员必须是 int、unsigned int 或signed int或char 。 2.位段的成员名后边有一个冒号和…

Leetcode3010. 将数组分成最小总代价的子数组 I

Every day a Leetcode 题目来源&#xff1a;3010. 将数组分成最小总代价的子数组 I 题目描述&#xff1a; 给你一个长度为 n 的整数数组 nums 。 一个数组的代价是它的第一个元素。比方说&#xff0c;[1,2,3] 的代价是 1 &#xff0c;[3,4,1] 的代价是 3 。 你需要将 num…

C语言---指针进阶

1.字符指针 int main() {char str1[] "hello world";char str2[] "hello world";const char* str3 "hello world.";const char* str4 "hello world.";if (str3 str4){//常量字符串在内存里面是无法修改的&#xff0c;所以没必要…

“分布式透明化”在杭州银行核心系统上线之思考

导读 随着金融行业数字化转型的需求&#xff0c;银行核心系统的升级改造成为重要议题。杭州银行成功上线以 TiDB 为底层数据库的新一代核心业务系统&#xff0c;该实践采用应用与基础设施解耦、分布式透明化的设计开发理念&#xff0c;推动银行核心系统的整体升级。 本文聚焦…

【Effective Objective - C 2.0】——读书笔记(五)

文章目录 二十九、理解引用计数三十、以ARC简化引用计数三十一、在dealloc方法中只释放引用并解除监听三十二、编写异常安全代码时留意内存管理问题三十三、以弱引用避免保留环三十四、以”自动释放池块“降低内存峰值三十五、用"僵尸对象"调试内存管理问题三十六、不…

【C语言】实现队列

目录 &#xff08;一&#xff09;队列 &#xff08;二&#xff09;头文件 &#xff08;三&#xff09; 功能实现 &#xff08;1&#xff09;初始化 &#xff08;2&#xff09; 销毁队列 &#xff08;3&#xff09; 入队 &#xff08;4&#xff09;出队 &#xff08;5&a…

论文阅读:四足机器人对抗运动先验学习稳健和敏捷的行走

论文&#xff1a;Learning Robust and Agile Legged Locomotion Using Adversarial Motion Priors 进一步学习&#xff1a;AMP&#xff0c;baseline方法&#xff0c;TO 摘要&#xff1a; 介绍了一种新颖的系统&#xff0c;通过使用对抗性运动先验 (AMP) 使四足机器人在复杂地…

luigi,一个好用的 Python 数据管道库!

🏷️个人主页:鼠鼠我捏,要死了捏的主页 🏷️付费专栏:Python专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 前言 大家好,今天为大家分享一个超级厉害的 Python 库 - luigi。 Github地址:https://github.com/spotify/luigi 在大数据时代,处理海量数据已经成…

NVIDIA 刚刚揭秘了他们的最新大作——Eos,一台跻身全球十强的超级计算机

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

android获取sha1

1.cmd在控制台获取 切换到Android Studio\jre\bin目录下执行keytool -list -v -keystore 签名文件路径例如&#xff1a; 2.也可以在android studio中获取 在Terminal中输入命令&#xff1a;keytool -list -v -keystore 签名文件路径获取 获取到的sha1如下&#xff1a;

ubuntu屏幕小的解决办法

1. 安装vmware tools , 再点自适应客户机 执行里面的vmware-install.pl这个文件 &#xff1a;sudo ./vmware-install.pl 执行不了可以放到家目录&#xff0c;我放在了/home/book 里面 最后点这个自适应客户机 然后我这里点不了是因为我点了控制台视图和拉伸客户机&#xff0c…

ClickHouse--07--Integration 系列表引擎

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 Integration 系列表引擎1 HDFS1.1 语法1.2 示例&#xff1a; 2 MySQL2.1 语法2.2 示例&#xff1a; 3 Kafka3.1 语法3.2 示例&#xff1a;3.3 数据持久化方法 Integ…

Leetcode 94.二叉树的中序遍历

题目 给定一个二叉树的根节点 root &#xff0c;返回 它的中序 遍历 。 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,3,2] 进阶: 递归算法很简单&#xff0c;你可以通过迭代算法完成吗&#xff1f; 递归遍历 递归遍历就是一个很简单的中序遍历 /*** Definitio…

LEETCODE 69. x 的平方根

class Solution { public:int mySqrt(int x) {int left0;int rightx;int midleft(right-left)/2;int ans-1;while(left<right){midleft(right-left)/2;if((long long)mid*mid<x){ansmid;leftmid1;}else{rightmid-1;}}return ans;} };*(long long)

GPT SOVITS项目 一分钟克隆 (文字输出)

步骤流程&#xff1a;&#xff08;首先使用UVR 提取人声文件&#xff0c;然后按下面步骤进行&#xff09; 注意这里提交的音频是参考的音频

【简写MyBatis】01-简单映射器

前言 新开一个坑&#xff0c;为了学习一下MyBatis的源码&#xff0c;写代码是次要的&#xff0c;主要为了吸收一下其中的思想和手法。 目的 关联对象接口和映射类的问题&#xff0c;把 DAO 接口使用代理类&#xff0c;包装映射操作。 知识点 动态代理简单工厂模式Invocati…

Web APIs -05

js执行机制 js是单线程&#xff0c;同一个时间只能做一件事情&#xff0c;所有任务需要排队所以有时候会渲染不连贯 同步任务 都在主线程上执行&#xff0c;形成一个执行栈 异步任务 js的异步是通过回调函数实现的分为三类&#xff1a;1.普通事件&#xff1a;click等&…