绘制非线性函数matlab

时间:2013-12-10 17:39:58

标签: matlab

我是Matlab的新手,并且使用Matlab绘制这个非线性2D函数图有问题。

运行以下内容后会产生很多错误。

fun1 =  20 + 10 + 15;
fun2 =  20 + (x * 0.00125 ) + 15;
fun3 = (x * 0.0025) + 15;

fplot(fun1,[0 8000])
fplot(fun2,[8000 16000])
fplot(fun2,[16000 positive infinity])

我非常感谢您回答我的问题所付出的努力和善意 最诚挚的问候

3 个答案:

答案 0 :(得分:1)

前三个表达式没有定义函数。请阅读有关正确语法的documentation

fun1 = @(x)(20 + 10 + 15);

答案 1 :(得分:0)

首先创建一个文件fun.m,其中包含您的函数定义

function y = fun(x)
  if x < 8000
    y = 20 + 10 + 15;
  elseif x < 16000
    y = 20 + (x * 0.00125) + 15;
  else
    y = x * 0.0025 + 15;
  end
end

然后你可以用

绘图
fplot(@fun, [0 24000])

导致

enter image description here

答案 2 :(得分:0)

如果您在fplot中阅读,您会发现这一点 为fplot(乐趣,限制) 好玩必须

  • 功能名称
  • 带有变量x的字符串,可以传递给eval,例如'sin(x)','diric(x,10)'或'[sin(x),cos(x)]'
  • 功能句柄

所以在你的情况下,你需要改变所有的乐趣,只需在表达式之前和之后添加'

至于最后一行将其改为

fplot(fun2,[16000 inf])

虽然我不认为这会给你带来任何好结果