1.函数变量替换对的问题)
对函数内的变量进行替换,下面这个是可以正常运行的,其他的就运行不了,是什么东西
a1 = 6;
f[x_] := x^2 + 3 x + a
Print["F = " , f[2] /. a -> a1];
这个就无法运行。。显示 a2->10 既不是替换规则列表,也不是一个有效的分派表,因此无法用来替换
a3 = 10;
f[c_] := c + a2 ;
Print[ " f = ", f[2] /. a2 -> a3];
最后发现是,在函数里面的要被替换的变量不能以数字结尾,不然就报错,
箭头用插入选项卡里面的,特殊字符里面的箭头符号
2.do循环做循环)
其实do里面都是主体
Do[
distance = Sqrt[ rx^2 + ry^2 ];
If[ distance <= R0,
主体
];
{rx, -1, 1, 1}, {ry, -1, 1, 1} ] //这里是双层循环嵌套
3.将输出结果写入excel)
程序最前面加下列语句
re = {};
然后
;re = Append[re, {参数1,参数2]}
再然后:
执行当前程序
再然后:
在新的输入框里面,执行下列语句
re // MatrixForm
再然后:
复制已经矩阵形式输出的文本,选择 复制为 纯文本 ,然后去excel里面粘贴就可以了
4.切记切记
定义函数和非函数的名字,不要同名
5.函数内多个参数待指定,只有1个自变量,参数带入函数,带入失败
(1)可能原因1:
原因:函数名和后续利用该函数时,所定义的名字不要一样,也就是4所说的,函数名称,和变量名称不要一样
错误:
FunFirstDerivativeGammaDlamda[\[Lambda]_] :=
1 - (y'[\[Lambda]] Cos[\[Lambda]] + R Cos[\[Gamma]]^2 -
Sin[\[Gamma]] y'[\[Lambda]] Sin[\[Gamma] - \[Lambda]])/
Cos[\[Gamma]]/ length;
FunFirstDerivativeGammaDlamda =
FunFirstDerivativeGammaDlamda[\[Lambda]] /. {v -> v0,
R -> R0, \[Gamma] -> tmpGamma};
正确
FunFirstDerivativeGammaDlamda0[\[Lambda]_] :=
1 - (y'[\[Lambda]] Cos[\[Lambda]] + R Cos[\[Gamma]]^2 -
Sin[\[Gamma]] y'[\[Lambda]] Sin[\[Gamma] - \[Lambda]])/
Cos[\[Gamma]]/ length;
FunFirstDerivativeGammaDlamda =
FunFirstDerivativeGammaDlamda0[\[Lambda]] /. {v -> v0,
R -> R0, \[Gamma] -> tmpGamma};
(2)可能原因2
可能是函数嵌套导致带入参数不对,下面这个例子中,
tmpGamma0中 , 是三个需要给定的参数 ,v -> v0, R -> R0, [Gamma] -> tmpGamma11 ,
自变量只有一个:
[Lambda] -> lambda1
同样的,f也是3个需给定的参数,1个自变量,也就是一开始直接,将
,没有先将求解结果[Lambda]带入函数tmpGamma0中先求解出对应的[Gamma]值,也就是直接将1个函数作为已知变量带入求值
正确做法如下,先求解粗第一层,Γ的值,然后再求解第二层的值