计算机程序设计艺术习题解答(Excercise 1.2.3-30~34题)

30. [M23 ] (J. Binet, 1812.) 不使用归纳法,证明等式  (\sum _{j=1}^{n}a_{j}x_{j})(\sum _{j=1}^{n}b_{j}y_{j})=(\sum _{j=1}^{n}a_{j}y_{j})(\sum _{j=1}^{n}b_{j}x_{j})+\sum _{1\leq j< k\leq n}{(a_{j}b_{k}-a_{k}b_{j})(x_{j}y_{k}-x_{k}y_{j})}

证:

这个公式是一个非常重要且基础的通用公式,稍后可以看到它的一系列推论,用处很大。

首先根据正文里公式 (4),用于和式乘积的分配律 (\sum _{R(i)}a_{i})(\sum _{S(j)}b_{j})=\sum _{R(i)}\sum _{S(j)}{a_{i}b_{j}} ,我们有

(\sum _{j=1}^{n}{a_{j}x_{j}})(\sum_{j=1}^{n}{b_{j}y_{j}})=\sum_{j=1}^{n}\sum_{k=1}^{n}{a_{j}x_{j}b_{k}y_{k}}=\sum_{1\leq j\leq n}\sum_{1\leq k\leq n}{a_{j}x_{j}b_{k}y_{k}}=\sum_{1\leq j,k\leq n}{a_{j}b_{k}x_{j}y_{k}}  ,

同理有 (\sum_{j=1}^{n}{a_{j}y_{j}})(\sum_{j=1}^{n}{b_{j}x_{j}})=\sum_{1\leq j,k\leq n}{a_{j}b_{k}x_{k}y_{j}}

上下两个等式相减,得到

(\sum_{j=1}^{n}{a_{j}x_{j}})(\sum_{j=1}^{n}{b_{j}y_{j}})-(\sum_{j=1}^{n}{a_{j}y_{j}})(\sum_{j=1}^{n}{b_{j}x_{j}})=\sum_{1\leq j,k\leq n}{(a_{j}b_{k}x_{j}y_{k}-a_{j}b_{k}x_{k}y_{j})}

\sum_{1\leq j<k\leq n}{(a_{j}b_{k}x_{j}y_{k}-a_{j}b_{k}x_{k}y_{j})}+\sum_{1\leq k<j\leq n}{(a_{j}b_{k}x_{j}y_{k}-a_{j}b_{k}x_{k}y_{j})}  ( 1\leq j=k\leq n 时和式为零)

\sum_{1\leq j<k\leq n}{(a_{j}b_{k}x_{j}y_{k}-a_{j}b_{k}x_{k}y_{j})}+\sum_{1\leq j<k\leq n}{(a_{k}b_{j}x_{k}y_{j}-a_{j}b_{k}x_{k}y_{j})} (第二个和式中 jk 互换)

\sum_{1\leq j< k\leq n}{(a_{j}b_{k}(x_{j}y_{k}-x_{k}y_{j}))}-\sum_{1\leq j<k\leq n}{(a_{k}b_{j}(x_{j}y_{k}-x_{k}y_{j}))}

\sum_{1\leq j<k\leq n}{(a_{j}b_{k}-a_{k}b_{j})(x_{j}y_{k}-x_{k}y_{j})}       由此等式 (\sum _{j=1}^{n}a_{j}x_{j})(\sum _{j=1}^{n}b_{j}y_{j})=(\sum _{j=1}^{n}a_{j}y_{j})(\sum _{j=1}^{n}b_{j}x_{j})+\sum _{1\leq j< k\leq n}{(a_{j}b_{k}-a_{k}b_{j})(x_{j}y_{k}-x_{k}y_{j})} 得证。

一个重要的特例是:当 \omega_{1}, \, ... \, , \omega _{n},\, z_{1},\, ...\, ,z_{n} 为任意复数时,我们令 a_{j}=\omega _{j}\, ,\, b_{j}=\bar{z_{j}}\, ,\, x_{j}=\bar{\omega _{j}}\, ,\, y_{j}=z_{j} ,就得到等式 (\sum_{j=1}^{n}{\left | \omega_{j} \right |^{2}})(\sum_{j=1}^{n}{\left | z_{j} \right |^{2}})=\left | \sum_{j=1}^{n}\omega_{j}z_{j} \right |^{2}+\sum_{1\leq j<k\leq n}{\left | \omega_{j}\bar{z_{k}}- \omega_{k}\bar{z_{j}}\right |^{2}}

证明:等式左边   (\sum_{j=1}^{n}a_{j}x_{j})(\sum_{j=1}^{n}b_{j}y_{j})=(\sum_{j=1}^{n}\omega_{j}\bar{\omega_{j}})(\sum_{j=1}^{n}z_{j}\bar{z_{j}})=(\sum_{j=1}^{n}\left | \omega_{j} \right |^{2})(\sum_{j=1}^{n}\left | z_{j} \right |^{2})

等式右边  (\sum_{j=1}^{n}a_{j}y_{j})(\sum_{j=1}^{n}b_{j}x_{j})+\sum_{1\leq j<k\leq n}(a_{j}b_{k}-a_{k}b_{j})(x_{j}y_{k}-x_{k}y_{j})

=  (\sum_{j=1}^{n}\omega_{j}z_{j})(\sum_{j=1}^{n}\bar{\omega_{j}}\bar{z_{j}})+\sum_{1\leq j<k\leq n}(\omega_{j}\bar{z_{k}}-\omega_{k}\bar{z_{j}})(\bar{\omega_{j}}z_{k}-\bar{\omega_{k}}z_{j})

=  \left | \sum_{j=1}^{n}\omega_{j}z_{j} \right |^{2}+\sum_{1\leq j<k\leq n}\left | \omega_{j}\bar{z_{k}}-\omega_{k}\bar{z_{j}} \right |^{2}              

 注:    (\sum_{j=1}^{n}\omega_{j}z_{j}) 与 (\sum_{j=1}^{n}\bar{\omega_{j}}\bar{z_{j}}) 互为共轭,(\omega_{j}\bar{z_{k}}-\omega_{k}\bar{z_{j}}) 与 (\bar{\omega_{j}}z_{k}-\bar{\omega_{k}}z_{j}) 也是互为共轭关系。

所有的 (\left | \omega_{j}\bar{z_{k}}-\omega_{k}\bar{z_{j}} \right |^{2}) 项都是非负的,所以根据 Binet 公式就可以推出著名的柯西-施瓦茨(Cauchy-Schwarz) 不等式 (\sum_{j=1}^{n}\left | \omega_{j} \right |^{2})(\sum_{j=1}^{n}\left | z_{j} \right |^{2})\geq \left | \sum_{j=1}^{n}\omega_{j}z_{j} \right |^{2} 。

31. 【M20] 利用 Binet 公式将和式 \sum_{1\leq j<k\leq n}(u_{j}-u_{k})(v_{j}-v_{k}) 表示为由 \sum_{j=1}^{n}u_{j}v_{j}\, ,\, \sum_{j=1}^{n}u_{j}\: \: and\: \: \sum_{j=1}^{n}v_{j} 组成的式子。

解:

在 Binet 公式 (\sum _{j=1}^{n}a_{j}x_{j})(\sum _{j=1}^{n}b_{j}y_{j})=(\sum _{j=1}^{n}a_{j}y_{j})(\sum _{j=1}^{n}b_{j}x_{j})+\sum _{1\leq j< k\leq n}{(a_{j}b_{k}-a_{k}b_{j})(x_{j}y_{k}-x_{k}y_{j})} 中,令 a_{j}=u_{j}\: ,\: b_{k}=1\: ,\: x_{j}=v_{j}\: ,\: y_{k}=1 ,就得到 \sum_{1\leq j<k\leq n}(u_{j}-u_{k})(v_{j}-v_{k})=(\sum_{j=1}^{n}u_{j}v_{j})(\sum_{j=1}^{n}1\cdot 1)-(\sum_{j=1}^{n}u_{j}\cdot 1)(\sum_{j=1}^{n}v_{j}\cdot 1)

n(\sum_{j=1}^{n}u_{j}v_{j})-(\sum_{j=1}^{n}u_{j})(\sum_{j=1}^{n}v_{j})

当 u_{j} 和 v_{j} 同为单调递增数列时,即 u_{1}\leq u_{2}\leq ...\leq u_{n} 且 v_{1}\leq v_{2}\leq ...\leq v_{n} 时,对任何 j, k, 只要满足 1\leq j<k\leq n ,都有 (u_{j}-u_{k})(v_{j}-v_{k})\geq 0 ,这样就可以推导出 \sum_{1\leq j<k\leq n}(u_{j}-u_{k})(v_{j}-v_{k})\geq 0\; \Rightarrow (\sum_{j=1}^{n}u_{j})(\sum_{j=1}^{n}v_{j})\leq n(\sum_{j=1}^{n}u_{j}v_{j}) ,这就是著名的切比雪夫单调不等式(Chebyshev's monotonic inquality)

33. [M30] One evening Dr. Matrix discovered some formulas that might even be classed as more remarkable than those of exercise 20:

\frac{1}{(a-b)(a-c)}+\frac{1}{(b-a)(b-c)}+\frac{1}{(c-a)(c-b)}=0,

\frac{a}{(a-b)(a-c)}+\frac{b}{(b-a)(b-c)}+\frac{c}{(c-a)(c-b)}=0,

\frac{a^2}{(a-b)(a-c)}+\frac{b^2}{(b-a)(b-c)}+\frac{c^2}{(c-a)(c-b)}=1,

\frac{a^3}{(a-b)(a-c)}+\frac{b^3}{(b-a)(b-c)}+\frac{c^3}{(c-a)(c-b)}=a+b+c .

Prove that these formulas are a special case of a general law; let x_{1},x_{2},...,x_{n} be distinct numbers, and show that

\sum _{j=1}^{n}(x_{j}^{r}/\prod _{1\leq k\leq n,k\neq j}{(x_{j}-x_{k})})=\left\{\begin{matrix} 0, & if & 0\leq r< n-1;\\ 1, & if & r=n-1;\\ \sum _{j=1}^{n}{x_{j}}, & if & r=n. \end{matrix}\right.

证:

对于 0\leq r\leq n-1 的情况的证明如下:

\sum _{j=1}^{n}(x_{j}^{r}/\prod _{1\leq k\leq n,k\neq j}{(x_{j}-x_{k})}) 可改写为两个和式的差:\frac{1}{x_{n}-x_{n-1}}(\sum _{j=1}^{n}{\frac{x_{j}^{r}(x_{j}-x_{n-1})}{\prod _{1\leq k\leq n,k\neq j}{(x_{j}-x_{k})}}}-\sum _{j=1}^{n}{\frac{x_{j}^{r}(x_{j}-x_{n})}{\prod _{1\leq k\leq n,k\neq j}{(x_{j}-x_{k})}}}) ,每个和式都和要证明的和式是同样的形式,但都只包含 n-1 项(第一个和式少了 j=n-1 时那项,第二个少了 j=n 时那项),这就启发我们对 n 使用数学归纳法来证明。

Base case: n = 3 时,根据前面的公式显然有

\frac{1}{(a-b)(a-c)}+\frac{1}{(b-a)(b-c)}+\frac{1}{(c-a)(c-b)}=0,

\frac{a}{(a-b)(a-c)}+\frac{b}{(b-a)(b-c)}+\frac{c}{(c-a)(c-b)}=0, 

\frac{a^2}{(a-b)(a-c)}+\frac{b^2}{(b-a)(b-c)}+\frac{c^2}{(c-a)(c-b)}=1, 要证明的公式成立。

当 n \geq 4 时,由前面 \sum _{j=1}^{n}(x_{j}^{r}/\prod _{1\leq k\leq n,k\neq j}{(x_{j}-x_{k})}) 可以改写为两个同样形式的 n-1 项和式的差,显然可以从 n-1 项时成立推导出 n 项时公式成立。

最后是比较麻烦的 r = n 时的情况。

由于对任意一个特定的 j1\leq j\leq n) ,\prod _{k=1}^{n}(x_{j}-x_{k}) 都等于零,因此有等式 0=\sum _{j=1}^{n}{\frac{\prod _{k=1}^{n}(x_{j}-x_{k})}{\prod _{1\leq k\leq n,k\neq j}(x_{j}-x_{k})}}=\sum _{j=1}^{n}{\frac{x_{j}^{n}-(x_{1}+...+x_{n})x_{j}^{n-1}+P(x_{j})}{\prod _{1\leq k\leq n,k\neq j}(x_{j}-x_{k})}} ,其中的 P(x_{j}) 是关于 x_{j} 的最高次幂为 x_{j}^{n-2} 的多项式。这样可以得出 \sum _{j=1}^{n}\frac{x_{j}^{n}}{\prod _{1\leq k\leqslant n,k\neq j}(x_{j}-x_{k})}=\sum _{j=1}^{n}{\frac{(x_{1}+...+x_{n})x_{j}^{n-1}}{\prod _{1\leq k\leqslant n,k\neq j}(x_{j}-x_{k})}}+\sum _{j=1}^{n}\frac{P(x_{j})}{\prod _{1\leq k\leqslant n,k\neq j}(x_{j}-x_{k})} 而根据前面已证明的结论,\sum _{j=1}^{n}\frac{P(x_{j})}{\prod _{1\leq k\leqslant n,k\neq j}(x_{j}-x_{k})}=0 , (因为对所有 0\leq r\leqslant n-2 ,\sum _{j=1}^{n}\frac{x_{j}^{r}}{\prod _{1\leq k\leq n,k\neq j}(x_{j}-x_{k})} 的值都为零。)而 \sum _{j=1}^{n}\frac{(x_{1}+...+x_{n})x_{j}^{n-1}}{\prod _{1\leq k\leq n,k\neq j}(x_{j}-x_{k})}=x_{1}+...+x_{n} ,这样就证明了 r=n 时的情况:\sum _{j=1}^{n}\frac{x_{j}^{n}}{\prod _{1\leq k\leq n,k\neq j}(x_{j}-x_{k})}=x_{1}+...+x_{n} 。

34. [M25] 证明如下等式成立:

\sum _{k=1}^{n}{\frac{\prod _{1\leq r\leq n, r\neq m}(x+k-r)}{\prod _{1\leq r\leq n,r\neq m}(k-r)}}=1, 假定其中 1\leq m\leq n 且 x 为任意实数。例如,当 n=4 且 m=2 时,\frac{x(x-2)(x-3)}{(-1)(-2)(-3)}+\frac{(x+1)(x-1)(x-2)}{(1)(-1)(-2)}+\frac{(x+2)x(x-1)}{(2)(1)(-1)}+\frac{(x+3)(x+1)x}{(3)(2)(1)}=1

证:

和33题的公式对照一下就可以找出类似的模式:令x_{k}=k,\, x_{r}=r ,分子 \prod _{1\leq r\leq n,r\neq m}(x+k-r)=k^{n-1}+P(k) ,其中的 P(k) 是最高次幂为 k^{n-2} 的关于 k 的多项式,套用 33 题的公式证明过程,\sum _{k=1}^{n}\frac{P(k)}{\prod _{1\leq r\leq n,r\neq k}(k-r)} = 0 ,这样就可以直接得出 \sum _{k=1}^{n}{\frac{\prod _{1\leq r\leq n, r\neq m}(x+k-r)}{\prod _{1\leq r\leq n,r\neq m}(k-r)}}=\sum _{k=1}^{n}\frac{k^{n-1}}{\prod _{1\leq r\leq n,r\neq m}(k-r)}=1​​​​​​​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
To plot C versus S for 0 ≤ S ≤ 200, we can use the following MatLab code: ```matlab E = 100; % Exercise price T = 1; % Expiry date r = 0.05; % Risk-free interest rate sigma = 0.3; % Volatility S = linspace(0, 200, 1000); C = zeros(size(S)); for i = 1:numel(S) C(i) = EuropeanCall(S(i), E, r, sigma, T); end plot(S, C); xlabel('S'); ylabel('C'); title('European Call Option Price'); ``` This code first defines the parameters of the option, and then generates a range of values for S between 0 and 200 using the `linspace` function. For each value of S, the code calculates the option price using the `EuropeanCall` function (which can be obtained from various sources). Finally, the code plots the option price as a function of S using the `plot` function. To plot the value of C(S, t) at different values of t between t = 0 and t = T, we can modify the above code as follows: ```matlab E = 100; % Exercise price T = 1; % Expiry date r = 0.05; % Risk-free interest rate sigma = 0.3; % Volatility S = linspace(0, 200, 1000); t = linspace(0, T, 1000); C = zeros(numel(S), numel(t)); for i = 1:numel(S) for j = 1:numel(t) C(i, j) = EuropeanCall(S(i), E, r, sigma, T - t(j)); end end surf(S, t, C); xlabel('S'); ylabel('t'); zlabel('C'); title('European Call Option Price'); ``` This code generates a grid of values for S and t using `linspace`, and then calculates the option price for each combination of S and t using a nested loop. The option price is stored in a matrix `C`, and is plotted as a surface using the `surf` function. As t approaches T, the option price converges to the intrinsic value of the option, which is max(S - E, 0) for a call option. This is because as the expiry date approaches, the option has less time to move in the money, and its time value decreases.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值