人工智能数学与代码实现--数值分析3(非线性方程(组)求根)

⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计7256字,阅读大概需要10分钟
🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号:不懂开发的程序猿
⏰个人网站:https://jerry-jy.co/

❗❗❗知识付费,🈲止白嫖,有需要请后台私信或【文末】个人微信公众号联系我

人工智能数学与代码实现–数值分析3(拟合)


实验环境

  1. Oracle Linux 7.4

  2. Python 3

实验目的

  1. 基于Python实现非线性方程求根

  2. 基于Python实现非线性方程组求根

知识点

  1. 非线性方程求根

  2. 非线性方程组求根

实验分析

在这里插入图片描述

任务实施过程

一、打开Jupyter,并新建python工程

1.桌面空白处右键,点击Konsole打开一个终端

2.切换至/experiment/jupyter目录

cd experiment/jupyter

3.启动Jupyter,root用户下运行需加–allow-root

jupyter notebook --ip=127.0.0.1 --allow-root

在这里插入图片描述
在这里插入图片描述

4.依次点击右上角的 New,Python 3新建python工程

在这里插入图片描述

在这里插入图片描述

5.点击Untitled,在弹出框中修改标题名,点击Rename确认

在这里插入图片描述

二、非线性方程求根

1. 二分法求解非线性方程

基于Python用二分法求解方程2.5x^2 −15x−100=0

import numpy as np
# 定义求解函数
def f1(x):
    '''
    x:表示函数的未知数x。
    '''
    return(2.5*x**2-15*x-100)
# 定义二分法函数
def dichotomy(a,b,preci_ratio = 10**-2):
    '''
    a,b :表示二分法的区间。
    preci_ratio:表示精确率。默认为10**-2
    '''
    # 判定方程在区间内是否至少一个解
    if (f1(a) != 0) & (f1(b) != 0) & (f1(a) * f1(b) < 0):
        result = []
        # 判定是否已经满足精确率
        while (np.abs((b - a))/2) >= preci_ratio:
            c = (a+b)/2.0
            pre = []
            pre.extend([a,b,c])
            if f1(a)*f1((c))>0:
                a=c
            elif f1(a)*f1((c)) < 0:
                b = c
            else:
                a = b = c
            pre.append(f1(c))
            result.append(pre)
    print('   a     b   (a+b)/2    f(x)')
    # 将返回值变为array,方便查看
    return(np.array(result))
print(dichotomy(4,14,0.01))  
import numpy as np
# 定义求解函数
def f1(x):
    '''
    x:表示函数的未知数x。
    '''
    return(2.5*x**2-15<
  • 25
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不懂开发的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值