分类 Mathematica 下的文章

好吧我错了,不需要增广矩阵即可。


数学讲到了二次函数,作业中就多了很多得待定系数法才能解出解析式的题。
系数小解起来还行,大了的话就麻烦了,更何况验算。
嘛,咱一般是用这功能来验算的,学霸们不必焦虑。


首先,二次函数解析式是$ y=ax^2+bx+c $,也就是需要三个方程才能解出来,比一次函数$ y=kx+b $能目测出来的话厉害多了。
那我们就用矩阵解呗。当然这里只说mathematica的方法。
首先我们是要一个$ Ax=B $的形式,$ A $是系数矩阵,而且是增广矩阵,$ x $是未知数向量,$ B $是已知值向量。
所以假设$ x $是k维的,则$ A $为k行k+1列的!要把常数项也扔进去!


比方说我看到了这样一道题:函数$ f(x)=ax^2+bx+c $已知其经过$ (-1,0),(3,0),(2,3) $,求解析式。
那么就有如下的线性方程组:

$$ \left\\{ \begin{array}{c} a-b+c=0 \\\\ 9a+3b+c=0 \\\\ 4a+2b+c=3 \end{array} \right. $$

其系数增广矩阵为

$$ A= \left[ \begin{array}{ccc|c} 1 & -1 & 1 & 0 \\\\ 9 & 3 & 1 & 0 \\\\ 4 & 2 & 1 & 0 \end{array} \right] $$

未知向量为

$$ x= \begin{bmatrix} a \\\\ b \\\\ c \\\\ 1(constant) \end{bmatrix} $$

值向量为

$$ B= \begin{bmatrix} 0 \\\\ 0 \\\\ 3 \end{bmatrix} $$

$$ \left[ \begin{array}{ccc|c} 1 & -1 & 1 & 0 \\\\ 9 & 3 & 1 & 0 \\\\ 4 & 2 & 1 & 0 \end{array} \right] \begin{bmatrix} a \\\\ b \\\\ c \\\\ 1 \end{bmatrix} = \begin{bmatrix} 0 \\\\ 0 \\\\ 3 \end{bmatrix} $$

代码是
In=

A = {{1, -1, 1, 0}, {9, 3, 1, 0 }, {4, 2, 1, 0}};
B = {0, 0, 3};
LinearSolve[A, B]

然后
Out=

{-1, 2, 3, 0}

当然也可以自己写个程序,好像是用高斯消元搞搞。

mathematica的函数Manipulate支持带有参数的函数绘图然后可以调节参数。
下面的就是用来调<s>戏</s>试一个二次函数的图像。

Manipulate[
Plot[a*x^2 + b*x + c, {x, -10, 10}], {a, -.1, -3}, {b, 0, 3}, {c, 0, 3}]

<s>这高亮脚本还是自己写的</s>
效果大致是这样QQ截图20150614212514.png