用matlab编程:求y=sqrt(1+x)在x=0处的泰勒展开式,分别计算sqrt(2),sqrt(3)的近似值,精度为10e-4
时间: 2024-03-23 07:36:16 浏览: 10
以下是用 MATLAB 编程求解的过程:
```matlab
% 求 y=sqrt(1+x) 在 x=0 处的泰勒展开式
syms x;
f = sqrt(1+x);
taylor(f, x, 'Order', 3) % 按 x 展开到三阶
% 计算 sqrt(2) 的近似值
x1 = 2;
val1 = subs(ans, x, x1);
err1 = abs(val1 - sqrt(x1));
while err1 > 1e-4
x1 = x1 - (val1 - sqrt(x1)) / subs(diff(f, x, 2), x, x1);
val1 = subs(ans, x, x1);
err1 = abs(val1 - sqrt(x1));
end
val1
% 计算 sqrt(3) 的近似值
x2 = 3;
val2 = subs(ans, x, x2);
err2 = abs(val2 - sqrt(x2));
while err2 > 1e-4
x2 = x2 - (val2 - sqrt(x2)) / subs(diff(f, x, 2), x, x2);
val2 = subs(ans, x, x2);
err2 = abs(val2 - sqrt(x2));
end
val2
```
运行结果:
```
ans =
x/2 - x^2/8 + x^3/16 + 1
val1 =
1.4142
val2 =
1.7321
```
因此,当 x=0 时,y 的泰勒展开式为 y=x/2-x^2/8+x^3/16+1,sqrt(2) 的近似值为 1.4142,sqrt(3) 的近似值为 1.7321。