SciPy 非线性方程求解 | Python技能树征题

Posted 盼小辉丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SciPy 非线性方程求解 | Python技能树征题相关的知识,希望对你有一定的参考价值。

0. 前言

在自然科学和工程学科中,许多系统本质上是非线性的,是许多计算方法和技术的重要组成部分。一般来说,包含幂大于1的变量的表达式是非线性的。本文利用 SciPy 求解非线性单个方程和方程组。

1. 第 1 题:一元非线性方程求解

知识点描述:一元非线性方程的求解。
问题描述:求解非线性方程 e x − 3 = 0 e^x-3=0 ex3=0,请从以下选项中选出你认为正确的答案:
A.

from scipy import optimize
import numpy as np
result = optimize.bisect(np.exp(x) - 3, -2, 2)
print(result)

B.

from scipy import optimize
import numpy as np
result = optimize.bisect(lambda x: np.exp(x) - 3, -2, 2)
print(result)

C.

from scipy import optimize
import numpy as np
result = optimize.bisect(np.exp(x) - 3, -1, 1)
print(result)

D.

from scipy import optimize
import numpy as np
result = optimize.bisect(lambda x: np.exp(x) - 3, -1, 1)
print(result)

正确答案: B

2. 第 2 题:非线性方程组求解

知识点描述:非线性方程组的求解。
问题描述:求解非线性方程组 { y − x 3 − 2 x 2 + 1 = 0 y + x 2 + 1 = 0 \\begin{cases} y-x^3-2x^2+1=0 \\\\[2ex] y+x^2+1=0 \\end{cases} yx32x2+1=0y+x2+1=0,请从以下选项中选出你认为正确的答案:
A.

from scipy import optimize
def func(x):
    return [x[1] - x[0]**3 - 2 * x[0]**2 + 1, x[1] + x[0]**2 + 1]
result = optimize.fsolve(func, [1, 1])
print(result)

B.

from scipy import optimize
def func(x):
    return [x[1] - x[0]**3 - 2 * x[0]**2 + 1, x[1] + x[0]**2 + 1]
result = optimize.fsolve(func(), [1, 1])
print(result)

C.

from scipy import optimize
def func(x):
    return [x[1] - x[0]**3 - 2 * x[0]**2 + 1, x[1] + x[0]**2 + 1]
result = optimize.fsolve(func(x), [1, 1])
print(result)

D.

from scipy import optimize
def func(x):
    return [x[1] - x[0]**3 - 2 * x[0]**2 + 1, x[1] + x[0]**2 + 1]
result = optimize.fsolve(func([x[0], x[1]]), [1, 1])
print(result)

正确答案: A

试题代码地址

https://codechina.csdn.net/LOVEmy134611/python_problem

以上是关于SciPy 非线性方程求解 | Python技能树征题的主要内容,如果未能解决你的问题,请参考以下文章

Python求解线性方程组

SciPy 积分 | Python技能树征题

如何传递用于scipy的sympy表达式?

Scipy---3.线性代数

commons-math3求解线性方程组

commons-math3求解线性方程组