画出来的曲线应该是连续的,我写的代码不太正规,求写一个标准的

当0当x当y+0.7在matlab中画y关于x的曲线

% 设置 x 轴的范围
x = linspace(0, 5, 1000);

% 定义 y 的初始值为 5
y = ones(1, length(x)) * 5;

% 当 0<x<0.7 时,y=5
idx = find(x < 0.7);
y(idx) = 5;

% 当 x<y+0.7 时,y=5-0.55(x-0.7)^2
idx = find(x >= 0.7 & x < y+0.7);
y(idx) = 5 - 0.55 * (x(idx) - 0.7).^2;

% 当 y+0.7<x<5 时,y=5-1.1[(x-0.7)y-0.5y^2]
idx = find(x >= y+0.7 & x <= 5);
y(idx) = 5 - 1.1 * ((x(idx) - 0.7) .* y(idx) - 0.5 .* y(idx).^2);

% 绘制曲线
plot(x, y);
xlabel('x');
ylabel('y');
title('y vs. x');

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/710171
  • 除此之外, 这篇博客: matlab 综合练习解答(基础)中的 5. 求代数方程关于x,y的解。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    cd6293ff9c404c92b3fb2f8632577101.png#pic_center
    解:如下方代码所示

    
    >> syms a b c x y
    >> [x,y]=solve(a*x^2+b*y+c==0,x+y==0)
     
    x =
     
     (b - (b^2 - 4*a*c)^(1/2))/(2*a)
     (b + (b^2 - 4*a*c)^(1/2))/(2*a)
     
     
    y =
     
     -(b - (b^2 - 4*a*c)^(1/2))/(2*a)
     -(b + (b^2 - 4*a*c)^(1/2))/(2*a)
    
  • 以下回答来自chatgpt:

    回答:

    要画出一个连续的y关于x的曲线,可以使用Matlab中的plot函数。具体而言,可以根据题目给出的y关于x的函数进行计算,先构造出x和y的值,再将它们作为输入参数传到plot函数中。代码如下:

    % 定义x的范围和步长
    x = 0:0.01:3;
    % 计算y
    y = zeros(size(x));
    y(x<1) = x(x<1);
    y(x>=1 & x<2) = x(x>=1 & x<2).^2;
    y(x>=2) = 2*x(x>=2)-1.7;
    % 画图
    plot(x, y);
    

    以上代码首先定义了x的取值范围和步长,然后根据x的值计算出对应的y值,最后使用plot函数画出x和y之间的连续曲线。

    对于代码规范的问题,可以根据Matlab官方的编码指南进行规范化。这些指南包括文件和变量命名规范、代码缩进和对齐、代码块之间的空白行等等。具体而言,可以通过在命令窗口输入以下命令来查看Matlab官方编码指南:

    doc matlab.codetools.livescripts.utilities.matlabmcodeguide
    

    在弹出的帮助文档中可以找到详细的编码规范。此外,还可以使用Matlab自带的代码审查工具来自动检测并修复不符合规范的代码。具体而言,可以在编辑器工具栏中找到"检查代码"按钮,点击后即可运行代码审查工具。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^