误差和残量 数值求解方程\(f(x)=0\)的根,有多种方法测算结果的近似程度.最直接的方法是计算误差.第\(n\)步迭代结果与真值\(x^\*\)的差即为第\(n\)步迭代的误差: \begin{equation*}e_n=x_n-x^*\end{equation*} 但是,我们一般是不知道真实值\(x^\*\)的,否则,我们也不会费劲去算了.所以,直接计算误差是不可能的,需要我们另辟蹊径. 一个可能的方法是,程序一直运行,直到结果不再变化.这个方法通常还是很管用的.有时候,程序结果不再变化并…
二分法和if ... else ... end 语句 先回顾一下二分法.要求方程\(f(x)=0\)的根.假设\(c = f(a) < 0\)和\(d = f(b) > 0\),如果\(f(x)\)是连续函数,那么方程的根\(x^*\)一定位于\(a\)和\(b\)之间.然后,我们看一下\(a\)和\(b\)中点\(x=(a+b)/2\),计算函数值\(y=f(x)\),如果函数不为0,比较\(c\).\(d\)和\(y\)的符号,确定新的二分区间.具体来说,如果\(c\)和\(y\)同号,新…
方程数值求解 下面几讲,我们将聚集如下方程的解法: \begin{equation} f(x)=0 \tag{3.1}\label{3.1} \end{equation} 在微积分课程中,我们知道,许多优化问题最终归结为求解上述形式的方程,其中\(f\)为你要求极值的函数\(F\)的导数.在工程问题中,函数\(F\)来源多种多样,有公式.微分方程的解.实验和模拟等. 牛顿迭代 我们把方程\eqref{3.1}的解记为\(x^\*\).方程的解法有三种:对分法.割线法和牛顿法.这三种方法都需要猜测…
Matlab也可以编程,可存为以.m为后缀的文件,称为M文件.M文件有两种:函数和脚本. 函数程序 点击新建图标,在打开的窗口里输入如下内容: function y = myfunc (x) y = 2*x.^2 - 3*x + 1; 将文件保存为myfunc.m,保存在当前目录下.这个文件就可以直接在命令窗口使用了,用法如Matlab内置函数,如在命令窗口输入如下内容: >> x = -2:.1:2; >> y = myfunc(x); >> plot(x,y) 这里…
向量 Matlab 中最基本的对象是矩阵,向量是特殊的矩阵.行向量是\(1\times n\)矩阵,列向量是\(m\times 1\)矩阵.输入如下行向量: >> v=[0 1 2 3] 回车,Matlab 将输出此行向量: v = 0 1 2 3 输入如下列向量: >> u = [9; 10; 11; 12; 13] 按如下方式访问向量的元素: >> u(2) 按如下方式改变元素的值: >> u(2)=47 按如下方式提取多个连续向量: >>…
割线法 割线法求解方程\(f(x)=0\)的根需要两个接近真实根\(x^\*\)的初值\(x_0\)和\(x_1\),于是得到函数\(f(x)\)上两个点\((x_0,y_0=f(x_0))\)和\((x_1,y_1=f(x_1))\),连接这两点得到一条直线(割线): \begin{equation*}y-y_1=\frac{y_1-y_0}{x_1-x_0}(x-x_1)\end{equation*} 由于我们要求解\(f(x)=0\),因此设\(y=0\),由上式解出\(x\),作为下次迭…
Python条件语句是通过判断一条或多条条件语句的执行结果来决定执行哪条代码块的.Python 中if 语句用于控制程序的执行,基本形式为:if 判断条件: 执行语句……else: 执行语句…… #coding=utf8a = 2if a > 0: print 'a 大于 0'else: print 'a 小于 0' if 语句的判断条件可以用>(大于).<(小于).==(等于).>=(大于等于).<=(小于等于)来表示其关系.当判断条件为多个值是,可以使用if..elif扩…
VBA中的流程控制分为两种,其一是条件结构式的,即根据条件判断的结果去选择性执行相应的语句(块):另一种是循环,即循环地执行语句(块).本节介绍第一种. 1. IF if 语句其实包含有几种形式: ① If...Then...End If 其格式为: If 逻辑表达式 Then ' 如果逻辑表达式为真,则执行这里的语句 End if 例如: If 8 > 5 Then Debug.Print "Yes" End If 输出结果为:Yes ② If...Then...Else...…
顺序结构 程序的顺序结构: 如果代码里没有流程控制,程序是按照书写的格式从上而下一行一行执行的, 一条语句执行完之后继续执行下一条语句,中间没有判断和跳转,直到程序的结束. if语句 if语句使用boolean表达式或boolean值作为选择条件,有三种结构形式: if翻译成中文,表示如果......,就干......., 第一种结构形式: if(boolean表达式) { 条件执行体 } if后面跟的{}表示一个整体—代码块,我们在这称为条件执行体,也就是说条件为true,就执行这一块代码块.…
与任何程序设计语言一样,Java使用条件语句和循环结构确定控制流程.Java的控制流程结构与C和C++的控制流程机构一样,只有很少的例外情况.没有goto语句,但break语句可以带标签,可以利用它实现从内层循环跳出的目的(这种情况C语言采用goto语句实现).另外,Java SE 5.0还添加了一种变形的for循环,在C或者C++中没有这类循环.它有点类似于C#中的foreach循环. 1.块作用域 在学习控制结构之前,需要了解块(block)的概念. 块(即复合语句)是指由一对花括号括起来的…