声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2890|回复: 18

[编程技巧] 一个有字母的分段函数怎么做?谢谢

[复制链接]
发表于 2006-4-3 10:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
偶刚看到这个网站,也刚来这里就求助真不好意思!但还是希望大家都帮帮偶...谢谢先:)
就是一个分段函数,当x<=c1,t=exp[-1/2*((x-c1)/b1)^2];c1<x<c2,t=1;x>=c2,t=t=exp[-1/2*((x-c2)/b2)^2]
就是不知道怎么定义这个c1,b1,c2,b2
如何对它进行变成来画出它的图形呢,这个是个高斯图形,请教大家了,谢谢帮忙!急:(

该题已结楼主、happy、zhuer各加威望1点

多情清秋
06.4.5
回复
分享到:

使用道具 举报

 楼主| 发表于 2006-4-3 10:39 | 显示全部楼层
5555没人理我啊,帮帮忙,各位大虾们...在线等啊..急!!!下午要交...
发表于 2006-4-3 10:56 | 显示全部楼层
 楼主| 发表于 2006-4-3 11:03 | 显示全部楼层
可这里是c1,b1,c2,b2,不是普通的数字啊,总是说c1等没有定义,就是这个把俺难住了,帮帮忙,大哥:)
发表于 2006-4-3 11:09 | 显示全部楼层
可这里是c1,b1,c2,b2,不是普通的数字啊,总是说c1等没有定义,就是这个把俺难住了,帮帮忙,大哥:)

不管用什么方法c1,b1,c2,b2都要给出来的,不给出来是不可能把图作出来的
 楼主| 发表于 2006-4-3 11:11 | 显示全部楼层
  1. x1=[0:0.01:c1]
  2. y1=exp[-1/2*(x-c1).^2./(b1.^2)]
  3. x2=[0:0.01:c2]
  4. y2=1
  5. x3=[c2:0.01:10]
  6. y3=exp[-1/2*(x-c2).^2./(b2.^2)]
  7. x=[x1,x2,x3]
  8. y=[y1,y2,y3]
  9. plot(x,y)
复制代码

这样么?可是c1等没定义,另外,在x3中我用了10 ,其实是x>=c2也就是后面没界限,那么这样该如何表示呢?
麻烦了..
发表于 2006-4-3 11:16 | 显示全部楼层
要画图必须给出来的,当然你可以写到function中,这时可以暂时不给值,但是调用的时候还是一样必须给的
不管有限无限,都要作采样处理,换句话说必须截断,在那里截断是你自己的选择了
 楼主| 发表于 2006-4-3 11:22 | 显示全部楼层
明白了...哈哈,谢谢了,教授:)那我上面写的程序你看对不呢?哪里有错吗?
发表于 2006-4-3 11:23 | 显示全部楼层
  1. x1=[0:0.01:c1]
  2. y1=exp[-1/2*(x-c1).^2./(b1.^2)]
  3. x2=[0:0.01:c2]
  4. y2=1
  5. x3=[c2:0.01:10]
  6. y3=exp[-1/2*(x-c2).^2./(b2.^2)]
  7. x=[x1,x2,x3]
  8. y=[y1,y2,y3]
  9. plot(x,y)
复制代码

这样么?可是c1等没定义,另外,在x3中我用了10 ,其实是x>=c2也就是后面没界限,那么这样该如何表示呢?
麻烦了..
红色部分不对
x2=[c1 c2]
y2=[1 1]
 楼主| 发表于 2006-4-3 11:26 | 显示全部楼层
真是不胜感激啊,看来以后有人照了,哈哈,谢谢happy教授,也希望你天天happy哈。
 楼主| 发表于 2006-4-3 11:30 | 显示全部楼层
y1=exp[-1/2*(x-25).^2./(10.^2)]

Error: Unbalanced or misused parentheses or brackets.
这个是什么意思呢?教授
发表于 2006-4-3 11:34 | 显示全部楼层
你想画到哪个范围把值定一下不就好了
用未知字母前必须要定义的,你的程序中要注意的地方太多
下面例子先看看
  1. c1=1;c2=5;b1=2;b2=3;
  2. x1=[0:0.01:c1];x2=0;x3=[c2:0.01:10];
  3. x=[x1,x2,x3];
  4. y1=exp(-1/2*(x-c1).^2./(b1.^2));
  5. y2=1;
  6. y3=exp(-1/2*(x-c2).^2./(b2.^2));
  7. y=[y1,y2,y3];
  8. c1=1;c2=5;b1=2;b2=3;
  9. x1=[0:0.01:c1];x2=0;x3=[c2:0.01:10];
  10. x=[x1,x2,x3];
  11. y1=exp(-1/2*(x-c1).^2./(b1.^2));
  12. y2=1;
  13. y3=exp(-1/2*(x-c2).^2./(b2.^2));
  14. y=[y1,y2,y3];
  15. plot(x,y1)
复制代码
发表于 2006-4-3 11:36 | 显示全部楼层
所有括号都用小括号
 楼主| 发表于 2006-4-3 11:44 | 显示全部楼层
为什么要用x2=0?
为什么不能直接plot(x,y)but plot(x,y1)
 楼主| 发表于 2006-4-3 11:48 | 显示全部楼层
我取c1=25 b1=10 c2=50 b2=20
程序为
  1. x1=[0:0.1:25]
  2. y1=exp[-1/2*(x-25).^2./(10^2)]
  3. x2=[25 50]
  4. y2=[1 1]
  5. x3=[50:0.1:100]
  6. y3=exp[-1/2*(x-50).^2./(20^2)]
  7. x=[x1,x2,x3]
  8. y=[y1,y2,y3]
  9. plot(x,y)
复制代码

不行,不晓得错在哪里?plot最后不能一起画么?
谢谢了
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-24 23:07 , Processed in 0.082241 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表