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

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

    • 0. 前言
    • 1. 第 1 题:一元非线性方程求解
    • 2. 第 2 题:非线性方程组求解
    • 试题代码地址

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

你可能感兴趣的:(Python,基础,Python技能树征题,python,算法,scipy)