⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 8_2_1.htm

📁 一本介绍mathmeitica的教材
💻 HTM
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0053)http://www.math.sjtu.edu.cn/mathematica教程/8.2.1.htm -->
<HTML><HEAD><TITLE></TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2900.2802" name=GENERATOR>
<META content=FrontPage.Editor.Document name=ProgId></HEAD>
<BODY background=8_2_1.files/0532.jpg topMargin=0>
<TABLE borderColor=#c0c0c0 borderColorDark=#008080 width="100%" bgColor=#c0c0c0 
borderColorLight=#c0c0c0 background=8_2_1.files/0713.jpg border=1>
  <TBODY>
  <TR>
    <TD width="100%"><B><FONT color=#ff0000>8.2.1 
      条件结构&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      <A href="http://www.math.sjtu.edu.cn/mathematica教程/index.htm"><IMG 
      height=61 src="8_2_1.files/0009.gif" width=65 border=0></A></FONT></B>  
  </TD></TR></TBODY></TABLE>
<P style="LINE-HEIGHT: 150%"><FONT color=#808000 size=2>&nbsp;&nbsp;&nbsp; 
我们在用计算机语言进行编程时,常用到条件语句。在Mathematica中也提供了多种设置条件的方法,并规定只有在该条件满足时才计算表达式。</FONT></P>
<P><FONT color=#0000ff size=2>下面条件结构的常用形式。</FONT></P>
<DIV align=center>
<CENTER>
<TABLE borderColorDark=#ffffff width=661 borderColorLight=#ff00ff 
background=8_2_1.files/0522.gif border=1>
  <TBODY>
  <TR>
    <TD width=335>
      <P><FONT color=#0000ff size=2>lhs:=rhsl/:test</FONT></P></TD>
    <TD width=310>
      <P><FONT color=#0000ff size=2>当test为真时使用定义</FONT></P></TD></TR>
  <TR>
    <TD width=335>
      <P><FONT color=#0000ff size=2>If[test,then,else]</FONT></P></TD>
    <TD width=310>
      <P><FONT color=#0000ff size=2>如test为真计算then,反之计算else</FONT></P></TD></TR>
  <TR>
    <TD width=335>
      <P><FONT color=#0000ff size=2>which[test1,value1,test2,...]</FONT></P></TD>
    <TD width=310>
      <P><FONT color=#0000ff size=2>依次计算testl,给出对应的第一个为真的值</FONT></P></TD></TR>
  <TR>
    <TD width=335>
      <P><FONT color=#0000ff 
      size=2>Switch[expr,forml,value1,form2,...]</FONT></P></TD>
    <TD width=310>
      <P><FONT color=#0000ff size=2>expr与每一个formi相比较,给出第一个相匹配的值</FONT></P></TD></TR>
  <TR>
    <TD width=335>
      <P><FONT color=#0000ff size=2>Switch[expr,form1, 
      value1,form2,…,_,def]</FONT></P></TD>
    <TD width=310>
      <P><FONT color=#0000ff 
size=2>用def为系统默认值</FONT></P></TD></TR></TBODY></TABLE></CENTER></DIV><FONT 
color=#0000ff size=3><FONT color=#000080>
<P><B>1.If命令</B></P></FONT></FONT>
<P><FONT color=#808000 size=2>下面的test为真,故返回第一表达式的值:</FONT></P><FONT 
color=#0000ff size=3><B><FONT size=2>
<DIV align=center>
<CENTER>
<TABLE width="56%" border=1>
  <TBODY>
  <TR>
    <TD width="100%" bgColor=#ffffff><FONT color=#0000ff size=3><B><FONT 
      size=2>ln[1]:=If [1&gt;0,1+2,2+3]</FONT></B></FONT> 
      <P><FONT color=#0000ff size=3><B><FONT 
      size=2>Out[1]=3</FONT></B></FONT></P></TD></TR></TBODY></TABLE></CENTER></DIV></FONT></B></FONT>
<P style="LINE-HEIGHT: 150%" align=justify><FONT color=#008000 
size=2>用Mathematica编程时,不可避免的要在单个或多个定义之间进行选择。单个定义的右边包含多个由If函数控制的分支,多个定义是用/;condition来表示的。运用多个定义进行编程你常能得到结构很好的程序。下面定义了一个阶跃函数,即当x&gt;O时值为1,反之值为-1:</FONT> 
<B><FONT color=#000000 
size=3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</FONT></P>
<DIV align=center>
<CENTER>
<TABLE width="45%" border=1>
  <TBODY>
  <TR>
    <TD width="100%" bgColor=#ffffff><B><FONT color=#000000 
      size=2>ln[2]:=If[x&gt;0,1,-1]</FONT></B></TD></TR></TBODY></TABLE></CENTER></DIV></B>
<P><FONT color=#008000 size=2>下面运用/;condition形式分别定义阶跃函数的正数和负数部分:</FONT><FONT 
color=#0000ff size=3> </FONT>&nbsp; <B></P>
<DIV align=center>
<CENTER>
<TABLE borderColor=#ffffff width="48%" border=1>
  <TBODY>
  <TR>
    <TD width="100%" bgColor=#ffffff><B><FONT 
      size=3>ln[3]:g=1/:x&gt;0</FONT></B> 
      <P><B><FONT size=3>ln[4]:g=-1/:x&lt;0 
</FONT></B></P></TD></TR></TBODY></TABLE></CENTER></DIV>
<P><FONT color=#000000 size=3>&nbsp;&nbsp; </FONT></B><FONT color=#008000 
size=2>用“?”显示用/:condition定义的函数g的完整信息:</FONT></P>
<DIV align=center>
<CENTER>
<TABLE borderColor=#ffffff height=77 width="48%" border=1>
  <TBODY>
  <TR><B>
    <TD width="100%" bgColor=#ffffff height=71><FONT color=#0000ff 
      size=3><B><FONT color=#000000 size=3>
      <P style="LINE-HEIGHT: 100%">ln[5]:=?g</P>
      <P style="LINE-HEIGHT: 100%">Global`g</P>
      <P style="LINE-HEIGHT: 100%">g[x_]:=1/:x&gt;O</P>
      <P 
  style="LINE-HEIGHT: 100%">g[x_]:=-1/:x&lt;O</P></FONT></B></FONT></TD></B></TR></TBODY></TABLE></CENTER></DIV><FONT 
color=#008000 size=3></FONT>
<P style="LINE-HEIGHT: 150%"><FONT color=#008000 
size=2>我们用函数If时,还可以用if(test,expr)结构,即当test真时,计算表达式expr,表达式expr的值就是整个If结构的值,反之返回空值。</FONT></P>
<P style="LINE-HEIGHT: 150%"><FONT color=#0000ff size=3><FONT color=#000080 
size=3><B>2.Which命令</B></P></FONT></FONT>
<P style="LINE-HEIGHT: 150%"><FONT color=#008000 size=2>&nbsp;&nbsp;&nbsp; 
对于一般情况函数If提供一个两者择一的方法。然而,有时条件多于两个,在这种情况下可用If函数的嵌套方式来处理,但在这种情况下使用Whitch或Switch函数将更合适。下面用Which定义具有三个条件的函数,调用这个函数:</FONT></P><FONT 
color=#008000 size=3><FONT color=#0000ff size=3><B><FONT size=2>
<P align=center><IMG height=159 src="8_2_1.files/Image148.gif" 
width=441></P></FONT></B><FONT color=#008000 size=2>
<P></FONT></FONT></FONT><FONT color=#008000 
size=2>用Switch定义一个与模的余数有关的函数:</FONT></P><FONT color=#0000ff size=3><FONT 
color=#008000 size=3><FONT lang=ZH-CN face=宋体 size=2>
<P align=center><IMG height=159 src="8_2_1.files/Image149.gif" 
width=441></P></FONT></FONT></FONT>
<P><FONT color=#808000 size=2>Mod[17,3]=2,因此运用了Switch中的第三种情况:</FONT></P><FONT 
color=#0000ff size=3><FONT color=#008000 size=3><FONT color=#000080 size=3>
<P><B>3 符号条件</B></P></FONT><FONT size=2>
<P style="LINE-HEIGHT: 150%"></FONT></FONT></FONT><FONT color=#008000 
size=2>在Mathemahca中,有一种可能的情况就是你给出的条件结果既不是真也不为假。下面测试的结果既不是真也不是假,因此If的两个分支保持不变:</FONT></P>
<DIV align=center>
<CENTER>
<TABLE width="53%" border=1>
  <TBODY>
  <TR>
    <TD width="100%" bgColor=#ffffff><FONT color=#0000ff size=3>
      <P><B><FONT size=3>ln[1]:=If[x==y,a,b]</P>
      <P>Out[1]:If[x==y,a,b]</P></FONT></B></FONT></TD></TR></TBODY></TABLE></CENTER></DIV><FONT 
color=#0000ff size=3>
<P></FONT><FONT color=#008000 
size=2>你可以给If加上第三个条件结果,这允许你测试的结果既不是真也不是假的情况下使用它:</FONT></P>
<DIV align=center>
<CENTER>
<TABLE width="53%" border=1>
  <TBODY>
  <TR>
    <TD width="100%" bgColor=#ffffff><FONT color=#0000ff size=3><B><FONT 
      size=2>
      <P>ln[2]:=If[x==y,a,b,c]</P>
      <P>Out[2]=c</FONT></B> </P></FONT></TD></TR></TBODY></TABLE></CENTER></DIV>
<P><FONT color=#008000 size=2>下面给出处理符号条件的函数。因x=x,故Mathematica给出结果为真:</FONT></P>
<P><FONT color=#008000 size=2>但Mathematica在下面情况下以符号等式输出: </FONT></P>
<DIV align=center>
<CENTER>
<TABLE width="53%" border=1>
  <TBODY>
  <TR>
    <TD width="100%" bgColor=#ffffff><FONT color=#0000ff size=3><B><FONT 
      size=2>
      <P><FONT color=#008000 size=2>ln[4]:=x==y </FONT></P>
      <P><FONT color=#008000 size=2>Out[4]:=x==y 
  </FONT></P></FONT></B></FONT></TD></TR></TBODY></TABLE></CENTER></DIV>
<P><FONT color=#008000 size=2>除非表达式能得出真,否则都被假设为假: </FONT></P>
<DIV align=center>
<CENTER>
<TABLE width="53%" border=1>
  <TBODY>
  <TR>
    <TD width="100%" bgColor=#ffffff><FONT color=#0000ff size=3><B><FONT 
      size=2></FONT></B></FONT><B>
      <P><FONT color=#008000 size=2>ln[5]:=TrueQ[x==x] </FONT></P>
      <P><FONT color=#008000 size=2>Out[5]=True </FONT></P>
      <P><FONT color=#008000 size=2>ln[6]:=TrueQ[x==y] </FONT></P>
      <P><FONT color=#008000 size=2>Out[6]=false 
</FONT></P></B></TD></TR></TBODY></TABLE></CENTER></DIV><B></B>
<P><FONT color=#008000 size=2>我们用“===”可直接测试两个表达式的等同性:</FONT> </P>
<DIV align=center>
<CENTER>
<TABLE width="53%" border=1>
  <TBODY>
  <TR>
    <TD width="100%" bgColor=#ffffff><B>
      <P><FONT color=#008000 size=2>In[7]:x===y </FONT></P>
      <P><FONT color=#008000 size=2>Out[7]:=False 
</FONT></P></B></TD></TR></TBODY></TABLE></CENTER></DIV>
<P style="LINE-HEIGHT: 150%"><FONT color=#008000 
size=2>一般情况下,“===”返回值为真(Truee)或假(False),而“==”为符号形式输出,表示一个符号等式。在特殊情况下可用“===”测试一个表达式的结构,而用“==”测试数学上的等同性。</FONT><FONT 
color=#000080 size=2>下例用“===”来测试表达式的结构: </FONT></P>
<P><FONT color=#0000ff size=2>下面给出一个无用结果:</FONT> </P>
<P style="LINE-HEIGHT: 150%"><FONT color=#008000 
size=2>在建立条件时,你常需要运用组合条件,如testl&amp;&amp;test2&amp;&amp;…。对于这些组合条件,如果其中有一个为假,则最后结果为假。,Mathematica依次对test进行计算,直到其中有一个为假为止。</FONT></P>
<P><FONT color=#000080 size=3><B>4.是逻辑表达式的运算形式。</B></FONT></P>
<P><FONT color=#008000 size=2>逻辑表达式 </FONT></P>
<DIV align=center>
<CENTER>
<TABLE width=499 bgColor=#ffffff border=1>
  <TBODY>
  <TR>
    <TD width=263>
      <P><FONT color=#0000ff size=2>expr1&amp;&amp;expr2&amp;&amp;expr3 
      </FONT></P></TD>
    <TD width=220>
      <P><FONT color=#0000ff size=2>计算expri,直到其中有一个为假为止 </FONT></P></TD></TR>
  <TR>
    <TD width=263>
      <P><FONT color=#0000ff size=2>exprl||expr2||expr3 </FONT></P></TD>
    <TD width=220>
      <P><FONT color=#0000ff size=2>计算expri,直到其中有一个为真为止 
</FONT></P></TD></TR></TBODY></TABLE></CENTER></DIV>
<P><FONT color=#008000 size=2>下面的函数包括两个组合条件:</FONT></P>
<P align=center><B><FONT color=#000000 
size=2>In[l0]:=t[x_]:=(x!=0&amp;&amp;1/x&lt;3) </FONT></P></B>
<P><FONT color=#008000 size=2>对这两个测试条件进行计算,</FONT><FONT color=#008000 
size=2>下面的第一次测试得出为假,因此不进行第二个条件的测试,第二测试结果可能为1或0,因此</FONT> </P>
<P><FONT color=#008000 size=2>输出结果为假:</FONT> </P>
<DIV align=center>
<CENTER>
<TABLE width="53%" border=1>
  <TBODY>
  <TR>
    <TD width="100%" bgColor=#ffffff>
      <P><B><FONT color=#008000 size=2>ln[12]:=t[0] </FONT></P>
      <P><FONT color=#008000 size=2>Out[12]=False 
</FONT></P></B></TD></TR></TBODY></TABLE></CENTER></DIV>
<P><FONT color=#008000 
size=2> Mathematica处理逻辑表达式的方法允许你组合一系列的测试条件,且只有当前面条件满足时才处理后面的条件。</FONT> </P><FONT 
color=#0000ff size=3>
<P align=right><A 
href="http://www.math.sjtu.edu.cn/mathematica教程/8.1.1.htm"><IMG height=15 
src="8_2_1.files/0171.gif" width=20 border=0></A>&nbsp;&nbsp;&nbsp;&nbsp; <A 
href="http://www.math.sjtu.edu.cn/mathematica教程/8.3.1.htm"><IMG height=15 
src="8_2_1.files/0173.gif" width=20 border=0></A></P></FONT></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -