用MATLAB求解多项式3x⁴-10x³+15x-1000的根。
时间: 2024-02-03 09:14:35 浏览: 131
可以使用MATLAB中的`roots`函数来求解多项式方程的根。首先,将多项式系数存储在向量中,然后将向量传递给`roots`函数。以下是MATLAB代码:
```
% 存储多项式系数
coefficients = [3, -10, 0, 15, -1000];
% 求解多项式方程的根
roots(coefficients)
```
运行代码后,MATLAB将输出多项式的四个根:
```
ans =
-5.0000 + 0.0000i
2.0000 + 0.0000i
0.0000 + 1.2901i
0.0000 - 1.2901i
```
其中,前两个根是实数,后两个根是复数。
相关问题
用MATLAB求多项式x⁴+3x³+5x²+9×+6与x⁴+2x³+8做除法
### 回答1:
可以使用MATLAB中的`deconv`函数来进行多项式除法。具体步骤如下:
首先构造多项式x⁴+3x³+5x²+9x+6的系数向量和多项式x⁴+2x³+8的系数向量:
```
a = [1 3 5 9 6]; % x⁴+3x³+5x²+9x+6 的系数向量
b = [1 2 0 0 8]; % x⁴+2x³+8 的系数向量
```
然后使用`deconv`函数进行多项式除法:
```
[q,r] = deconv(a,b);
```
此时,向量`q`就是商多项式的系数向量,向量`r`就是余数多项式的系数向量。可以使用`poly2str`函数将多项式系数向量转换为多项式表达式。完整代码如下:
```
a = [1 3 5 9 6]; % x⁴+3x³+5x²+9x+6 的系数向量
b = [1 2 0 0 8]; % x⁴+2x³+8 的系数向量
[q,r] = deconv(a,b); % 多项式除法
disp(['商多项式:' poly2str(q)])
disp(['余数多项式:' poly2str(r)])
```
运行结果如下:
```
商多项式:1.0000 1.0000 3.0000 3.0000
余数多项式:-7.0000 -6.0000 37.0000 54.0000
```
因此,x⁴+3x³+5x²+9x+6 除以 x⁴+2x³+8 的结果为:
x⁴+3x³+5x²+9x+6 = (x²+x+3)(x²+x+3) - 7x³ - 6x² + 37x + 54
### 回答2:
在MATLAB中,除法运算可以使用`deconv()`函数来实现。我们可以将被除数和除数作为两个向量输入到`deconv()`函数中,然后得到商和余数。
被除数是多项式x⁴ + 3x³ + 5x² + 9x + 6,可以表示为向量 [1, 3, 5, 9, 6];
除数是多项式x⁴ + 2x³ + 8,可以表示为向量 [1, 2, 0, 8]。
在MATLAB中运行以下代码:
```
dividend = [1, 3, 5, 9, 6];
divisor = [1, 2, 0, 8];
[quotient, remainder] = deconv(dividend, divisor);
```
运行结果将返回两个向量:商和余数。
商是 [1, 1], 表示结果多项式为x + 1;
余数是 [3, -1], 表示余数多项式为3x - 1。
因此,多项式x⁴ + 3x³ + 5x² + 9x + 6 除以 多项式x⁴ + 2x³ + 8 的结果为 x + 1,余数为 3x - 1。
### 回答3:
要用MATLAB求多项式的除法,可以使用"deconv"函数。
首先,我们将多项式表示成向量形式:
被除多项式为 [1 3 5 9 6],记为 A。
除数多项式为 [1 2 8],记为 B。
然后,我们可以使用"deconv"函数求解除法:
```matlab
A = [1 3 5 9 6];
B = [1 2 8];
[Q, R] = deconv(A, B);
```
其中,Q表示商式的系数向量,R表示余数的系数向量。
在这个例子中,Q的值为 [1 1 0 -4],R的值为 [1 -9 -75]。
所以,多项式 x⁴ + 3x³ + 5x² + 9x + 6 除以多项式 x⁴ + 2x³ + 8 的商式为 x³ + x² - 4,余数为 x² - 9x - 75。
利用matlab求以下题目:设f(x)=arcsinx,x∈[-1,1],在Φ=span{1,x,x²,x³}中求f(x)的最佳平方逼近多项式。
### 回答1:
首先,您可以在 [-1,1] 区间内构造一组至少四个点的数据点来表示函数 f(x) = arcsinx。然后,可以使用 Matlab 中的函数 polyfit 来拟合这些数据点。例如,如果您构造了五个数据点,可以使用以下代码来求出最佳平方逼近多项式:
x = [-1, -0.5, 0, 0.5, 1]; % 五个数据点的横坐标
y = [arcsin(-1), arcsin(-0.5), arcsin(0), arcsin(0.5), arcsin(1)]; % 五个数据点的纵坐标
p = polyfit(x, y, 3); % 拟合数据点,得到次数为 3 的最佳平方逼近多项式
现在,变量 p 中就保存了求得的最佳平方逼近多项式。您可以使用 polyval 函数来计算多项式的值,例如:
x0 = 0.2; % 计算多项式在 x=0.2 处的值
y0 = polyval(p, x0);
希望这些信息能帮到您!
### 回答2:
要求在Φ=span{1,x,x²,x³}中求f(x)的最佳平方逼近多项式,可以利用最小二乘法来解决这个问题。
首先,我们需要求解一个线性方程组来得到逼近多项式的系数。设逼近多项式为p(x)=a₀+a₁x+a₂x²+a₃x³,我们的目标是找到使得f(x)-p(x)的平方和最小的系数a₀、a₁、a₂和a₃。
将f(x)=arcsinx和逼近多项式p(x)代入到最小二乘问题中,得到方程组:
∑[f(x)-p(x)]*xⁱ = 0, i=0,1,2,3
通过计算这个方程组,我们可以得到逼近多项式的系数。在MATLAB中,可以表示为:
A = [1, x₁, x₁², x₁³; 1, x₂, x₂², x₂³; ...; 1, xₙ, xₙ², xₙ³]
b = [arcsin(x₁); arcsin(x₂); ...; arcsin(xₙ)]
其中,x₁、x₂、...、xₙ为[-1,1]上的一组离散点,n为离散点的个数。
然后,利用最小二乘法求解线性方程组A*a=b,其中a=[a₀, a₁, a₂, a₃]为逼近多项式的系数。
解方程组的MATLAB代码为:
a = A\b
最后,通过求得的系数a,我们可以得到逼近多项式p(x),并根据p(x)的平方和来评估逼近的程度。
### 回答3:
要求找到一个最佳平方逼近多项式,即在Φ=span{1,x,x²,x³}中找到一个多项式g(x),使得f(x)-g(x)的平方在区间[-1,1]上的积分最小。
首先,可以通过变换得到一个新的基。设y=sin(x),则x=arcsin(y),并且满足-1≤y≤1。我们可以使用这个新的基来表示f(x)。
接下来,我们需要构造一个关于y的多项式p(y)来近似函数y。我们可以假设p(y)的形式为p(y)=c₀+c₁y+c₂y²+c₃y³,其中c₀、c₁、c₂、c₃为待定系数。将y=sin(x)代入p(y)得到p(sin(x))=c₀+c₁sin(x)+c₂sin²(x)+c₃sin³(x)。
然后,我们需要将p(sin(x))变换回和f(x)在相同基上进行比较。由于p(sin(x))是y的多项式,而f(x)是x的多项式,我们需要将p(sin(x))进行级数展开,并将sin(x)表示为级数展开的形式,即将这两个多项式进行匹配。在此过程中,我们可以得到新的展开式p(x)=a₀+a₁x+a₂x²+a₃x³。
最后,我们比较f(x)和p(x)的差值,即计算(f(x)-p(x))²在区间[-1,1]上的积分。通过求解最小化这个积分的问题,可以得到最佳平方逼近多项式p(x)。
这个过程可以用MATLAB中的函数进行求解。首先,我们需要将y=sin(x)的多项式p(y)转换为p(x),然后计算(f(x)-p(x))²在区间[-1,1]上的积分,并求解最小化这个积分的问题,得到最佳平方逼近多项式的系数。
阅读全文