设计函数求一元多项式的导数。 ( 注:x n(n为整数)的一阶导数为nxn 1)
时间: 2023-09-27 12:02:27 浏览: 221
设计一个函数来计算一元多项式的导数。
输入参数为一个一元多项式F,用数组表示,其中F[i]表示系数为F[i]的x^i项。例如,F = [a0, a1, a2, ..., an] 表示多项式a0 + a1*x + a2*x^2 + ... + an*x^n。
函数的输出为多项式F的导数G,用数组表示,其中G[j]表示系数为G[j]的x^j项。根据导数公式,G[j] = j*F[j],其中j表示项的次数。
具体实现如下:
```
def derivative(F):
G = []
for i in range(len(F)):
G.append(i * F[i])
return G
```
例如,输入多项式F = [1, 2, 3],表示多项式1 + 2*x + 3*x^2。调用函数`derivative(F)`,输出结果为导数多项式G = [0, 2, 6],表示导数为0 + 2*x + 6*x^2。
这样,我们就设计了一个函数来计算一元多项式的导数。
相关问题
设计函数求一元多项式的导数。 输入格式: 以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。
设计一个函数求一元多项式的导数的步骤如下:
1. 解析输入的多项式,将其转化为一个系数和指数的列表。
2. 循环遍历列表,对每一项求导。对于一元多项式的导数的规律为:
$$ (ax^b)' = a*b*x^{b-1} $$
3. 将求出的导数的系数和指数存入新的列表中。
4. 对新列表进行输出,按照指数从大到小的顺序输出系数和指数。
代码实现如下:
```
def derivative(polynomial):
# 解析输入的多项式
terms = []
for term in polynomial.split():
coef, exp = term.split('x^')
terms.append((int(coef), int(exp)))
# 求导
derived = []
for coef, exp in terms:
if exp == 0:
continue
derived.append((coef*exp, exp-1))
# 输出导数
result = []
for coef, exp in derived:
result.append(str(coef) + 'x^' + str(exp))
return ' '.join(result)
```
示例:
```
derivative('3x^2 2x^1 1')
```
输出:
```
6x^1 2
```
matlab求多项式导数
在MATLAB中求多项式导数,可以使用内置函数`polyder`。这个函数可以计算多项式的一阶导数,对于更高阶的导数,可以在`polyder`函数中嵌套使用,或者使用`polyder`函数的第二个参数。
举例来说,如果你有一个表示多项式的向量`p`,其中`p`的每个元素对应多项式的系数,从最高次项到常数项依次排列,你可以使用`polyder`函数来得到它的导数。如果`p`是`[a, b, c, d]`,它代表多项式`a*x^3 + b*x^2 + c*x + d`,那么一阶导数可以通过以下代码计算得到:
```matlab
p = [a, b, c, d]; % 原始多项式系数,a为最高次项系数
dp = polyder(p); % 计算一阶导数
```
如果要计算更高阶的导数,例如二阶导数,可以这样做:
```matlab
d2p = polyder(p, 2); % 计算二阶导数
```
`polyder`函数也可以用来计算两个多项式相乘的结果的导数,或者是两个多项式相除后余式的导数。
阅读全文