【问题标题】:Matlab finding tangent of two curvesMatlab求两条曲线的切线
【发布时间】:2024-04-28 14:20:02
【问题描述】:

对于家庭作业项目,我必须找到两条曲线相切的点。

我编写了以下脚本,但它给了我一个错误:

Warning: 2 equations in 1 variables.

我不明白这个警告,但我的老师说它不应该在那里。

这是我的脚本:

syms x y;

y1 = x^3-3*x+4;
y2 = 3*(x^2-x);

y1_prime = diff(y1);
y2_prime = diff(y2);

x_point = solve(y1 == y2, x1_prime == x2_prime);

slope = subs(y1_prime, x, x_point);

y_point = subs(y1, x,x_point);

tangent_line = solve(y - y_point == slope*(x - x_point), y); 

fprintf('The equation for the tangent line is: %s\n', string(tangent_line));

请帮忙。谢谢你:)

【问题讨论】:

    标签: matlab math


    【解决方案1】:

    你有两个方程要解。第一个是两条曲线的交点:

    x^3-3*x+4 = 3*(x^2-x)
    

    第二个要求斜率在交点处匹配:

    3*x^2-3 = 3*(2*x-1)
    

    所以你有两个方程在一个未知数 x 中,在这种情况下可以求解 x,但通常你可能无法找到解。

    【讨论】:

    • 我还以为是关于 MATLAB 的问题。
    • 是的,这是一个关于MATLAB的问题。我在解释为​​什么警告“警告:1 个变量中有 2 个方程”。有道理。
    • 我明白了。我认为 MATLAB 对这个来说可能有点矫枉过正。
    • 我想这个警告是有道理的,但是有没有办法让它没有警告?
    • 我认为您无法避免警告。符号求解器最初不会知道你在一个变量中的两个方程确实有一个解。