酷代码 AI
菜单
全部AI  /  热门  /  AI问答
服务商

用octave 1.求函数f(x)=×⅔(x²-8)的极值。 2.用多种数值方法计算定积分∫₀^π/4.1/(1-sinx)dx,并与精确值 √2进行比较,观察不同方法相应的误差。 3.用数值方法求解下列微分方程,用不同颜色利线型将,和,何在同一图形窗口里: y"-y'+y=3cost 初始时间:t₀=0.终止时间:tғ=2π;初始条件:y|ₜ₌₀=0,y'=0|ₜ₌₀。

1. 求函数f(x)=x^(2/3)(x²-8)的极值 ```octave % 定义函数 f = @(x) x.^(2/3) .* (x.^2 - 8); % 求导 syms x df = diff(x^(2/3)*(x^2-8), x); critical_points = solve(df == 0, x); % 转换为数值 cp_numeric = double(critical_points); % 验证极值 d2f = diff(df, x); for i = 1:length(cp_numeric) x_val = cp_numeric(i); if isreal(x_val) second_deriv = double(subs(d2f, x, x_val)); if second_deriv > 0 disp(['在 x = ', num2str(x_val), ' 处有极小值']); elseif second_deriv < 0 disp(['在 x = ', num2str(x_val), ' 处有极大值']); else disp(['在 x = ', num2str(x_val), ' 处二阶导数为零,需要进一步分析']); end end end % 绘制函数图像 x_vals = linspace(-3, 3, 1000); plot(x_vals, f(x_vals)); title('函数 f(x) = x^{2/3}(x^2-8)'); xlabel('x'); ylabel('f(x)'); grid on; ``` 2. 计算定积分 ∫₀^{π/4} 1/(1-sinx) dx ```octave % 精确值 exact_value = sqrt(2); % 定义被积函数 f = @(x) 1./(1-sin(x)); % 积分区间 a = 0; b = pi/4; % 矩形法 n = 1000; h = (b-a)/n; x = linspace(a, b, n+1); rectangular = h * sum(f(x(1:end-1))); error_rect = abs(rectangular - exact_value); % 梯形法 trapezoidal = h * (sum(f(x)) - (f(a)+f(b))/2); error_trap = abs(trapezoidal - exact_value); % Simpson法 if mod(n,2) == 1 n = n+1; end h = (b-a)/n; x = a:h:b; simpson = h/3 * (f(a) + 4*sum(f(x(2:2:end-1))) + 2*sum(f(x(3:2:end-2))) + f(b)); error_simp = abs(simpson - exact_value); % 输出结果 disp(['精确值: ', num2str(exact_value)]); disp(['矩形法: ', num2str(rectangular), ' 误差: ', num2str(error_rect)]); disp(['梯形法: ', num2str(trapezoidal), ' 误差: ', num2str(error_trap)]); disp(['Simpson法: ', num2str(simpson), ' 误差: ', num2str(error_simp)]); ``` 3. 求解微分方程 y'' - y' + y = 3cos(t) ```octave % 定义微分方程 ode = @(t, y) [y(2); y(2) - y(1) + 3*cos(t)]; % 时间范围 tspan = [0, 2*pi]; % 初始条件 y0 = [0; 0]; % 使用不同方法求解 [t_euler, y_euler] = euler_method(ode, tspan, y0, 1000); [t_rk4, y_rk4] = ode45(ode, tspan, y0); [t_ode23, y_ode23] = ode23(ode, tspan, y0); % 绘制结果 figure; plot(t_euler, y_euler(:,1), 'r-', 'LineWidth', 1.5); hold on; plot(t_rk4, y_rk4(:,1), 'b--', 'LineWidth', 1.5); plot(t_ode23, y_ode23(:,1), 'g:', 'LineWidth', 2); title('微分方程 y'''' - y'' + y = 3cos(t) 的解'); xlabel('t'); ylabel('y(t)'); legend('欧拉法', 'RK4', 'ode23'); grid on; % 欧拉方法实现 function [t, y] = euler_method(ode, tspan, y0, n) t = linspace(tspan(1), tspan(2), n+1)'; h = (tspan(2)-tspan(1))/n; y = zeros(n+1, length(y0)); y(1,:) = y0'; for i = 1:n y(i+1,:) = y(i,:) + h * ode(t(i), y(i,:))'; end end ``` 说明: 1. 极值问题:通过符号计算求导并找到临界点,然后使用二阶导数测试确定极值性质。 2. 数值积分:比较了矩形法、梯形法和Simpson法,并计算了与精确值的误差。 3. 微分方程:实现了欧拉方法并与内置的ode45和ode23比较,使用不同线型和颜色绘制结果。 [2025-04-03 19:09:50 | AI问答 | 1214点数解答]

相关提问