matlab编程关于分段函数
我是想求y=y1+y1。然后可以对y函数画图。(画图时尽量不要用类似x=0:0.01:9取点的形式,有没有直接画已知函数的方法?)另外,对于任何x值,要能求得对应的y值。...
我是想求y=y1+y1。然后可以对y函数画图。(画图时尽量不要用类似x=0:0.01:9取点的形式,有没有直接画已知函数的方法?)
另外,对于任何x值,要能求得对应的y值。比如x等于3.5或5.6时y的值。
希望写出尽量全的程序。谢谢了 展开
另外,对于任何x值,要能求得对应的y值。比如x等于3.5或5.6时y的值。
希望写出尽量全的程序。谢谢了 展开
2个回答
展开全部
y2的第2个条件写错了,应该是3<=x<=6吧?
参考代码:
y1 = @(x)(x.^2+3*x).*(x<=4)+(4*x+1).*(x>4&x<=9);
y2 = @(x)(3*x.^2-9).*(x>-2&x<3)+(7*x+4).*(x>=3&x<=6);
y = @(x)y1(x)+y2(x);
x = -4:0.1:11;
plot(x,y1(x),x,y2(x),x,y(x),'--')
legend('y_1','y_2','y')
前三行代码分别定义了三个匿名函数y1、y2和y,可以随便调用求任何x的函数值:
>> y(3.5)
ans =
51.2500
>> y(5.6)
ans =
66.6000
更多追问追答
追问
你好!
我说的画图,不想用x = -4:0.1:11类似的方法,这样画是是在连线。
我想知道有没有办法什么办法画真实的函数图象。
比如:plot(y=x^2)。当然这个命令不能执行,但就是这个意思。
追答
你的想法是不现实的。
计算机绘图的基本原理就是把连续的东西离散化,只要步长足够小,得到的图就可以足够精细。无论你使用什么软件、什么函数画曲线,本质上都是用折线连出来的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询