24小时热门版块排行榜    

查看: 3526  |  回复: 11

crag2003

银虫 (小有名气)

[求助] mathematica 怎么画分段函数??求求求啊 已有1人参与

如题 怎么用mathematica 画分段函数   如下:有两个隐函数
当t小于20时  该函数为
630.2*(1-h/44330)^5.25==470.51-(t*27*(1-h/44330)^5.25)*(((29830)/(44330-h))^7.5 - ((29830)/(44330 -h))^8.978)^0.5
当t大于等于20时   该函数为
630.2*(1 - h/44330)^5.25 ==470.51 - (t*27*(1 -h/44330)^5.25)*(((29830 + 40*t)/(44330 -h))^7.5 - ((29830 + 40*t)/(44330- h))^8.978)^0.5

t的范围为0---300    h的范围为0--14000
在一个坐标系画出此分段函数。横坐标是t   纵坐标是h      求大神解答呀   感激不尽啊  !
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

crag2003

银虫 (小有名气)

引用回帖:
8楼: Originally posted by cooooldog at 2014-09-14 17:42:13
改成 f(h)=0的形式
然后用FindRoot解...

我是这样弄的:

FindRoot[(470.51 -
    630.2*(1 -
        h/44330)^5.25)/((27*(1 -
          h/44330)^5.25)*(((29830)/(44330 -
             h))^7.5 - ((29830)/(44330 - h))^8.978)^0.5 - t), {h, 20}]


FindRoot::nlnum: 在 {h} = {20.} 处,函数值 {-(158.199/(4.06452 -1. t))} 不是由数字组成的维度为 {1} 的列表. >>
10楼2014-09-14 18:07:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

cooooldog

铁杆木虫 (著名写手)

ส็็็

【答案】应助回帖

感谢参与,应助指数 +1
可以直接用If[ ]定义函数;
也可以用 条件符号"/;"定义成分段的, 比如:
CODE:
ClearAll["Global`*"];
f[x_] := 3 /; x <= 0;
f[x_] := 4 /; 0 <= x <= 1;
f[x_] := 5 /; 1 <= x <= 2;
f[x_] := 6 /; 2 <= x <= 3;
f[x_] := 7 /; 3 <= x <= 4;
f[x_] := 8 /; 4 <= x
h = Plot[f[x], {x, -2, 6}, PlotStyle -> Red, AxesOrigin -> {-2, 2}];
r = First /@ Differences /@ (PlotRange /. Options[h]);
Show[h, AspectRatio -> Last@r/First@r]

mathematica 怎么画分段函数??求求求啊
ส็็็็็็็็็็็็็็็็็็็็
2楼2014-09-13 19:18:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cooooldog

铁杆木虫 (著名写手)

ส็็็

顺便,你这隐函数只有 t<0才有图像
ส็็็็็็็็็็็็็็็็็็็็
3楼2014-09-13 19:28:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

crag2003

银虫 (小有名气)

引用回帖:
2楼: Originally posted by cooooldog at 2014-09-13 19:18:09
可以直接用If定义函数;
也可以用 条件符号"/;"定义成分段的, 比如:

ClearAll;
f := 3 /; x <= 0;
f := 4 /; 0 <= x <= 1;
f := 5 /; 1 <= x <= 2;
f := 6 /; 2 <= x <= 3;
...

我是新手     我的那两个函数  是隐函数  
怎么用plot  表示出来呀 ?谢谢了
4楼2014-09-13 19:36:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

crag2003

银虫 (小有名气)

引用回帖:
3楼: Originally posted by cooooldog at 2014-09-13 19:28:29
顺便,你这隐函数只有 t<0才有图像

ContourPlot[{630.2*(1 - h/44330)^5.25 ==
   470.51 - (t*27*(1 -
          h/44330)^5.25)*(((29830)/(44330 -
             h))^7.5 - ((29830)/(44330 - h))^8.978)^0.5}, {t, 20,
  300}, {h, 0, 14000}]



ContourPlot[{630.2*(1 - h/44330)^5.25 ==
   470.51 - (t*27*(1 -
          h/44330)^5.25)*(((29830 + 40*t)/(44330 -
             h))^7.5 - ((29830 + 40*t)/(44330 - h))^8.978)^0.5}, {t,
  0, 300}, {h, 0, 14000}]



这个是 这两个函数的图像  你可一看看   我就想画出第一个函数t大于0 小于20   第二个函数t大于20小于300的 分段函数图像  麻烦大侠了
5楼2014-09-13 19:48:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cooooldog

铁杆木虫 (著名写手)

ส็็็

【答案】应助回帖

★ ★ ★ ★ ★
crag2003: 金币+5, ★★★★★最佳答案 2014-09-13 22:12:59
引用回帖:
5楼: Originally posted by crag2003 at 2014-09-13 19:48:04
ContourPlot



ContourPlot



这个是 这两个函数的图像  你可一看看   我就想画出第一个函数t大于0 小于20   第二个函数t大于20小于300的 分段函数图像  麻烦大侠了...

CODE:
ClearAll["Global`*"];
h1 = ContourPlot[
   630.2*(1 - h/44330)^5.25 ==
    470.51 - (t*27*(1 -
           h/44330)^5.25)*(((29830)/(44330 -
              h))^7.5 - ((29830)/(44330 - h))^8.978)^0.5, {t, 0,
    300}, {h, 2000, 8500}, RegionFunction -> Function[{h}, h < 20],
   ContourStyle -> Red, PlotPoints -> 50];
h2 = ContourPlot[{630.2*(1 - h/44330)^5.25 ==
     470.51 - (t*27*(1 -
            h/44330)^5.25)*(((29830 + 40*t)/(44330 -
               h))^7.5 - ((29830 + 40*t)/(44330 - h))^8.978)^0.5}, {t,
     0, 300}, {h, 2000, 8500},
   RegionFunction -> Function[{h}, h > 20], ContourStyle -> Blue,
   PlotPoints -> 50];
Show[{h1, h2}]

mathematica 怎么画分段函数??求求求啊-1
ส็็็็็็็็็็็็็็็็็็็็
6楼2014-09-13 21:19:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

crag2003

银虫 (小有名气)

引用回帖:
6楼: Originally posted by cooooldog at 2014-09-13 21:19:02
ClearAll;
h1 = ContourPlot;
h2 = ContourPlot;
Show
...

大侠  还有一个问题   我想求出   当t等于20时的  h值   怎么解不出来呀

麻烦帮看看哈  

Solve[630.2*(1 - h/44330)^5.25 ==
  470.51 - (20*27*(1 -
         h/44330)^5.25)*(((29830)/(44330 - h))^7.5 - ((29830)/(44330 -
             h))^8.978)^0.5, h]


一直显示  正在运行
7楼2014-09-14 16:32:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cooooldog

铁杆木虫 (著名写手)

ส็็็

引用回帖:
7楼: Originally posted by crag2003 at 2014-09-14 16:32:33
大侠  还有一个问题   我想求出   当t等于20时的  h值   怎么解不出来呀

麻烦帮看看哈  

Solve


一直显示  正在运行...

改成 f(h)=0的形式
然后用FindRoot解

» 本帖已获得的红花(最新10朵)

ส็็็็็็็็็็็็็็็็็็็็
8楼2014-09-14 17:42:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

crag2003

银虫 (小有名气)

送红花一朵
引用回帖:
8楼: Originally posted by cooooldog at 2014-09-14 17:42:13
改成 f(h)=0的形式
然后用FindRoot解...

能给出具体的吗  我是新手   自己试了下  没弄明白  谢谢了
9楼2014-09-14 18:04:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 crag2003 的主题更新
信息提示
请填处理意见