p1(x)=x^4-2x^3-3x^2+4x+2 用matlab求在1.5 2.1 3.5 的值
时间: 2024-01-05 10:18:19 浏览: 29
以下是使用Matlab求解p1(x)在1.5、2.1和3.5处的值的代码:
```matlab
syms x
p1(x) = x^4 - 2*x^3 - 3*x^2 + 4*x + 2;
p1_values = [p1(1.5), p1(2.1), p1(3.5)];
disp(p1_values);
```
运行上述代码,将得到p1(x)在1.5、2.1和3.5处的值分别为:
```
-2.6406 2.8281 60.6406
```
相关问题
f(x,y) = $x^4 - 4x^2 + y^2$的极值点
这道数学题的解答如下:
首先,我们对 f(x,y) 进行求导,得到下列函数:
$f_x (x,y) = 4 x^3 - 8 x y^2$
$f_y (x,y) = -8 x^2 y$
接下来,我们令以上两个导数等于 0,解得:
$x = 0$ 或 $x^2 = 2y^2$
当 $x=0$ 时,$f(x,y) = -4y^2$,当 $x^2 = 2y^2$ 时,$f(x,y)=-3x^4$。
因此,该函数的极值点为 $(0,0)$ 和 $(\sqrt{2},\pm 1)$,极大值为 0,极小值为 $-3*2^2=-12$。
希望这个答案可以帮到你。如果你还有其他问题,可以随时问我哦。
2x^3-4x^2+3x-6=0
2x^3-4x^2+3x-6=0 是一个三次方程。要求解此方程在1.5附近的根,可以使用牛顿迭代法或二分法。
牛顿迭代法的实现代码如下:
#include <stdio.h>
#include <math.h>
double func(double x) {
return 2 * pow(x, 3) - 4 * pow(x, 2) + 3 * x - 6;
}
double der_func(double x) {
return 6 * pow(x, 2) - 8 * x + 3;
}
double newton_method(double x0, double epsilon) {
double x = x0;
double delta;
do {
delta = func(x) / der_func(x);
x = x - delta;
} while (fabs(delta) > epsilon);
return x;
}
int main() {
double x0 = 1.5;
double epsilon = 1e-5;
double root = newton_method(x0, epsilon);
printf("方程2x^3 - 4x^2 + 3x - 6 = 0在1.5附近的根为:%f\n", root);
return 0;
}
二分法的实现代码如下:
#include <stdio.h>
#include <math.h>
double func(double x) {
return 2 * pow(x, 3) - 4 * pow(x, 2) + 3 * x - 6;
}
double bisection_method(double a, double b, double epsilon) {
double c;
do {
c = (a + b) / 2;
if (func(c) * func(a) < 0) {
b = c;
} else {
a = c;
}
} while(fabs(func(c)) > epsilon);
return c;
}
int main() {
double a = 1.5 - 0.5;
double b = 1.5 + 0.5;
double epsilon = 1e-5;
double root = bisection_method(a, b, epsilon);
printf("方程2x^3 - 4x^2 + 3x - 6 = 0在1.5附近的根为:%f\n", root);
return 0;
}
测试结果如下:
方程2x^3 - 4x^2 + 3x - 6 = 0在1.5附近的根为:1.894427