#include <stdioh>
#include <stdlibh>
#include <mathh>
int main()
{
int i,cc;
double h,epsilon,ma,mb,mc,mm,yfa,yfb,xx,y0,yf,panduan;
double yy[11];
h=01;
cc=0;
epsilon=00002;
ma=5;mm=ma;
y0=1;yf=exp(1);
yy[0]=y0;
do
{
yy[1]=hmm+yy[0];
for(i=2;i<=10;i++)
{
xx=ih;
yy[i]=2yy[i-1]-yy[i-2]+pow(h, 2)((2+9xx)yy[i-1]-(1+9xx)exp(xx));
}
panduan=(yy[10]-yf)(yy[10]-yf)-epsilonepsilon;
if(panduan>0&&cc==0)
{
yfa=yy[10];
mb=yfma/yfa;
mm=mb;
}
else
{
yfb=yy[10];
mc=ma+(mb-ma)(yf-yfa)/(yfb-yfa);
mm=mc;
ma=mb;yfa=yfb;
}
cc=cc+1;
}
while(panduan>0);
printf("%f\n",yy[0]);
printf("%f\n",yy[1]);
printf("%f\n",yy[2]);
printf("%f\n",yy[3]);
printf("%f\n",yy[4]);
printf("%f\n",yy[5]);
printf("%f\n",yy[6]);
printf("%f\n",yy[7]);
printf("%f\n",yy[8]);
printf("%f\n",yy[9]);
printf("%f\n",yy[10]);
printf("%d\n",cc);
printf("%f\n",panduan);
system("PAUSE");
return 0;
}
最简单的一个打靶法程序,计算y''=-(2+9x)y=-(1+9x)e^x,y(0)=1,y(1)=e
早在三十年前, 计算数学的先驱之一 L N Trefethen 就给出了数值分析的定义:
Numerical analysis is the study of algorithms for the problems of continuous problems—- Lloyd N Trefethen, Cornell University
翻译过来就是: 数值分析是研究连续问题的算法的科学 其中, 最主要的概念就是算法和连续问题 首先, 连续问题是从物理或者其它学科中抽象出来的复杂模型问题, 一般是无穷维问题且几乎无法找到解析解 这些棘手的连续问题就自然成为数值分析的目标对象 其次, 求解连续问题的算法的设计和分析是数值分析的核心内容, 它们的目的是将连续的无穷维的问题离散化, 得到一个离散的有限维的可解问题, 进而得到近似解 如果没有数值分析, 现代科学与工程应用研究将很快陷入停滞
数值分析, 就课程来说, 是研究解决一些数学问题的数值算法的学科, 包括算法分析, 实现, 精度及稳定性等内容; 本科阶段学习的数值分析课程主要内容有: 插值法和函数逼近理论, 数值积分和数值微分, 解线性方程组的直接方法和矩阵迭代法, 逼近特征值, 非线性方程(组)求根, 常微分方程的数值解法等 还有的教材会介绍求解偏微分方程的差分和有限元方法, 当然几乎每一块内容都可以单独拉出来写本书, 数值分析的标准教材中都会覆盖这些基本内容, 掌握这些基本内容也就打好基础了, 以后学习数值分析的其它进阶课程就容易入门了 这门课程要求的基础课程不多, 一般来说, 具备数学分析(高等数学)及高等代数(线性代数)的基本内容就可以了, 当然还要熟悉至少一门计算机语言
更多的介绍可以参考文章: 数值分析
实验报告撰写要求
1 实验报告和实验预习报告使用同一份实验报告纸,是在预习报告的基础上继续补充相关内容就可以完成的,不作重复劳动,因此需要首先把预习报告做的规范、全面。
2 根据实验要求,在实验时间内到实验室进行实验时,一边测量,一边记录实验数据。但是为了使报告准确、美观,此时应该把实验测量数据先记录在草稿纸上。等到整理报告时再抄写到实验报告纸上,以避免错填了数据,造成修改,把报告写得很乱。
3 在实验中,如果发生实验测量数据与事先的计算数值不符,甚至相差过大,此时应该找出原因,是原来的计算错误,还是测量中有问题,不能不了了之,这样只能算是未完成本次实验。
4 实验报告不是简单的实验数据记录纸,应该有实验情况分析,要把通过实验所测量的数据与计算值加以比较,如果误差很小(一般5%以下)就可以认为是基本吻合的。如果误差较大就应该有误差分析,找出原因。
5 在实验报告上应该有每一项的实验结论,要通过具体实验内容和具体实验数据分析作出结论(不能笼统的说验证了某某定理)。
6 设计性、综合性实验要画出所设计的电路图,标出所选出和确定的电路参数。要有验算过程和必要的设计说明。
7 必要时需要绘制曲线,曲线应该刻度、单位标注齐全,曲线比例合适、美观,并针对曲线作出相应的说明和分析。
8 在报告的最后要完成指导书上要求解答的思考题。
9 实验报告在上交时应该在上面有实验指导教师在实验中给出的预习成绩和 *** 作成绩,并有指导老师的签名,否则报告无效。
10 希望每个同学认真完成好实验报告,这是培养和锻炼综合和总结能力的重要环节,是为课程设计、毕业设计论文的撰写打下一个基础,对以后参加工作和科学研究也是大有益处的。
问题一:数值分析有什么作用? 数学中的数值分析的详细作用在哪些方面?请举例一下 谢谢 数值分析也叫计算方法,因为有些方程是没有解析解就是数学表达式,或者工程上并不关心抽象的表示而是更关心数值结果,加上现在的计算机能力的提升,所以怎么在计算机里解决问题就变为矩阵计算问题。要算得快,算得准,还要节省存储空间。而其他问题要怎么离散变为矩阵也是要研究的问题。所以大部分问题是围绕矩阵方程求解来展开的。
数值计算在数学上对理论的猜测也有指导作用。这个我也不太了解。比如,矩阵的谱半径和什么范数的关系,直接分析有点难猜,算出来就可以比一比啦。
在工程上可以说没有能脱离数值分析的。比如快速傅里叶变换就是频谱分析常用的;而现在医学影像学的CT,PET,MRI的影像增强等图像处理PDE方法就要用离散方法化为矩阵问题求解;我帮忙做过生化的实验分析:半透膜的浓度分析,就是一滴药在什么时刻什么位置的弄度是多少,其实就是热传导方程的数值解。现在的天气预报怎么得到的,数值分析啊,想把预报准些,把离散的网格分的细些,那样就要算得更快存储更大的计算机,国家为什么造超级计算机?不是用来玩星际2,wc3,wow的,那些只是娱乐功能而已。当然了这个什么导d,飞机,要算每个点的受力怎么办,风洞实验不是哪都有的,所以算就更方便。中国数值也不错。至少可以吹吹有限元,这个在模态分析中好像有用,我见过用它去研究米国的f16的。其他的我就不清楚了。
如果是学数学的,就要加具体应用背景,数值分析虽说有用但是编程能力也是要跟上的。如果是其他专业的,这个就是工程软件的里面那些事,现在学会了,可以省点钱,还能针对自己具体的问题自己编,而不是要套模板,那些条件可以使变的。
问题二:数值分析在现实中有哪些应用 搞机器人和航空航天的用得最厉害了
问题三:数值分析在现实中有哪些应用 最简单的是图像边缘的提取
然后可以做模式识别,伪影去除,三维模型的重建,图像处理方面都算数值分析
要简单的?自己构造一个黑白图像,比如圆形,然后用算法把圆形的边缘识别出来,没了
问题四:实分析和数值分析在金融领域都有啥用哪个更有用一些 这个还真看你将来做啥。做到比较高端的像model risk vetting,risk ysis,实分析非常重要。基本上所有东西都是从ito's lemma开始的。
数值分析同样也很重要。贯彻几乎金融领域绝大多数分析岗位。甚至一些咨询公司、财会专业也需要。
总的来说,实分析走高精尖路,有可能用不上。但你一旦有机会进入这些岗位,你不会实分析肯定不行。而数值分析没那么高端,但是非常有用。就算将来你不做金融,也很有可能用处。
PS: 某些方面上,实分析和数值分析是有重合部分的。两者不是100%独立的。
问题五:数值分析 特征值和特征向量的计算 有什么用处 要求初始值(向量v0)含有主特征值对应的特征向量x1方向上的某一分量,此时初始值(向量v0)才能经过迭代得到主特征值及其对应的特征向量x1
也就是说,v0与x1不正交,
或者说将v0用矩阵A(nn)的n个线性无关的特征向量x1,x2,xn表示时:v0=a1x1+a2x2++anxn,系数a1不等于零
一般的,当不清楚x1的时,将初值取成v0=(1,1,1)时,一定满足这一条件
问题六:数值分析在实际中有什么应用 急求急求 在线等! 最简单的是图像边伐的提取
然后可以做模式识别,伪影去除,三维模型的重建,图像处理方面都算数值分析
要简单的?自己构造一个黑白图像,比如圆形,然后用算法把圆形的边缘识别出来,没了
问题七:数值分析哪种软件哪种好用 在哪里可以下载这些破解版或绿色版软件,其软件各自应用起来有什么优缺点请问这些软件的应用哪些教程好用点有人 说 :数值模拟分析只是用来忽悠不懂数值模拟的人的是否真是这样这些软件近似解的相对模拟精确程度怎么样 怎样提高其解的真实性与准确性能否提供实例
问题八:matlab在数值分析中的应用有哪些 MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。 MATLAB 产品族可以用来进行以下各种工作: ● 数值分析 ● 数值和符号计算 ● 工程与科学绘图 ● 控制系统的设计与仿真 ● 数字图像处理 技术 ● 数字信号处理 技术 ● 通讯系统设计与仿真 ● 财务与金融工程 MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了MATLAB 环境,以解决这些应用领域内特定类型的问题。
问题九:数值分析有什么作用? 数学中的数值分析的详细作用在哪些方面?请举例一下 谢谢 数值分析也叫计算方法,因为有些方程是没有解析解就是数学表达式,或者工程上并不关心抽象的表示而是更关心数值结果,加上现在的计算机能力的提升,所以怎么在计算机里解决问题就变为矩阵计算问题。要算得快,算得准,还要节省存储空间。而其他问题要怎么离散变为矩阵也是要研究的问题。所以大部分问题是围绕矩阵方程求解来展开的。
数值计算在数学上对理论的猜测也有指导作用。这个我也不太了解。比如,矩阵的谱半径和什么范数的关系,直接分析有点难猜,算出来就可以比一比啦。
在工程上可以说没有能脱离数值分析的。比如快速傅里叶变换就是频谱分析常用的;而现在医学影像学的CT,PET,MRI的影像增强等图像处理PDE方法就要用离散方法化为矩阵问题求解;我帮忙做过生化的实验分析:半透膜的浓度分析,就是一滴药在什么时刻什么位置的弄度是多少,其实就是热传导方程的数值解。现在的天气预报怎么得到的,数值分析啊,想把预报准些,把离散的网格分的细些,那样就要算得更快存储更大的计算机,国家为什么造超级计算机?不是用来玩星际2,wc3,wow的,那些只是娱乐功能而已。当然了这个什么导d,飞机,要算每个点的受力怎么办,风洞实验不是哪都有的,所以算就更方便。中国数值也不错。至少可以吹吹有限元,这个在模态分析中好像有用,我见过用它去研究米国的f16的。其他的我就不清楚了。
如果是学数学的,就要加具体应用背景,数值分析虽说有用但是编程能力也是要跟上的。如果是其他专业的,这个就是工程软件的里面那些事,现在学会了,可以省点钱,还能针对自己具体的问题自己编,而不是要套模板,那些条件可以使变的。
问题十:在数值分析中span是什么意思 哈哈 如果说S span V的话意思就是S里面的元素包含足够多的不线性相关的元素,并且这些元素可以成为V的basis(基)。 比如,S={(1,0) (0,1) (2,3)}的话S明显span R2,因为前两个元素就是R2的标准基。 span作为动词的意思是“包括,遍及“。这对于数学很好理解。S span V的话S里面的元素是足够把整个V都”遍及“的,那么他一定包含足够多linear independent的元素能成为V的基。也就是V里面任何元素都能用S里面的来表示,这就是”遍及“的含义。 信我吧我是留学生也是alevel学过来的 不懂追问
子函数,四阶经典的龙格-库塔函数:
function [x,y]=Classical_RK4(odefun,xspan,y0,h,varargin)
% 经典Runge-Kutta法求解常微分方程
% 输入参数:
% ---odefun:微分方程的函数描述
% ---xspan:求解区间[x0,xn]
% ---y0:初始条件
% ---h:迭代步长
% ---p1,p2,…:odefun函数的附加参数
% 输出参数:
% ---x:返回的节点,即x=xspan(1):h:xspan(2)
% ---y:微分方程的数值解
x=xspan(1):h:xspan(2);
y(1)=y0;
for k=1:length(x)-1
K1=feval(odefun,x(k),y(k),varargin{:});
K2=feval(odefun,x(k)+h/2,y(k)+h/2K1,varargin{:});
K3=feval(odefun,x(k)+h/2,y(k)+h/2K2,varargin{:});
K4=feval(odefun,x(k)+h,y(k)+hK3,varargin{:});
y(k+1)=y(k)+h/6(K1+2K2+2K3+K4);
end
x=x';y=y';
2主函数:
>> f=@(t,y)8-3y;
>> xspan=[0 4];
>> h=02;
>> y0=2;
>> [t,y]=Classical_RK4(f,xspan,y0,h)
t =
0
02000
04000
06000
08000
10000
12000
14000
16000
18000
20000
22000
24000
26000
28000
30000
32000
34000
36000
38000
40000
y =
20000
23004
24654
25561
26059
26333
26483
26566
26611
26636
26650
26657
26662
26664
26665
26666
26666
26666
26667
26667
26667
学之前最好必须先要学好java的数据类型 在就是图论,想学深必须要学图论 还有就是微积分和统计学 数值分析肯定少不了他俩
如果能补充一点算法与设计的能力就更好了,不过对于初学者,后者比数据结构可要难的多了。
1上课认真听讲
2课后要认真完成作业
3注重matlab上机实验
4要多动手编写一些自己的程序
做到一上四点基本上就可以学好数值分析了
以上就是关于求数值分析打靶法的C语言程序!高悬赏!全部的内容,包括:求数值分析打靶法的C语言程序!高悬赏!、大学的数值分析是啥 怎么用的 谁会吗 解释下、实验结果分析应注意什么数值计算应注意什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)