[上机实验内容及实验报告要求]上机实验内容及实验报告要求 一、《软件技术基础》上机实验内容 1.顺序表的建立、插入、删除。 2.带头结点的单链表的建立(用尾插法)、插入、删除。 二、提交到个人10M硬盘空间...+阅读
以前写的数值分析作业,和楼主的题目大同小异,给你参考一下吧:1. 主函数 syms x; x0 = input('Enter interval x0 = '); x1 = input('Enter interval x1 = '); x = x0:0.01:x1; disp('Enter function. Example: f(x)=sin(x)-.4'); func = input('Enter function: f(x)=', 's');% Plot function fplot(func, [x0,x1]); grid on; myeps =10^-5; while 1 disp('1) Do you want to plot another function?, '); disp(' or find the solution to f(x)=0 using '); disp('2) Bisection, '); disp('3) Regula-Falsi, '); disp('4) Newton-Raphson, '); disp('5) Secant Method., or '); disp('6) Exit.'); choice = input ('Enter the number: '); switch (choice) case 1 x0 = input('Enter interval x0 = '); x1 = input('Enter interval x1 = '); x = x0:0.01:x1; func = input('Enter function: f(x)=', 's'); cla; fplot(func, [x0,x1]);grid on; case 2 %bisection method a = input('Enter the value a = '); b = input('Enter the value b = '); [X, fX, flag] = bisection(func, a, b, myeps); case 3 %Regula-Falsi a = input('Enter the value a = '); b = input('Enter the value b = '); [X, fX, flag] = regularfalsi(func, a, b, myeps); case 4 %Newton Raphson x = input('Enter initial value x = '); [X, fX, flag] = newtonraphson(func, x, myeps); case 5 %secant a = input('Enter first value p0 = '); b = input('Enter second value p1 = '); [X, fX, flag] = secant(func, a, b, myeps); case 6 disp ('bye'); break; end end2.二分法:function [ X, fX ,flag] = bisection( func, a, b, eps )%X = zeros(100,1);%fX = zeros(100,1); disp('==============================='); disp(' x f(x) i '); disp('-------------------------------'); flag=-1; for k=1:100 c = (a+b)/2; x=a; fa = eval(func); x=b; fb = eval(func); x=c; fc = eval(func); if (fa*fb>0) fprintf('Invalid interval'); X=0; fX=0; return; end fprintf('-------------------------\n'); fprintf('%10f %15f %3d\n', a, fa, k); fprintf('%10f %15f %3d\n', b, fb, k); fprintf('%10f %15f %3d\n', c, fc, k); X(k,1) = c; fX(k,1) = fc; if (fc == 0 || abs(fc) disp('-------------------------------'); disp('*** Solution Reached! ***'); disp('==============================='); flag=1; return; end if (fa*fc>0) %fa and fc is of same sign a=c; fa=fc; else b=c; fb=fc; end end flag=0; disp('-------------------------------'); disp('!!! Method did not converge !!!'); disp('===============================');3. 牛顿-拉弗森法(应该就是lz需要的改进的牛顿法) function [ X, fX ,flag] = newtonraphson( func, a, eps )%X = zeros(100,1);%fX = zeros(100,1); disp('==============================='); disp(' x f(x) i '); disp('-------------------------------'); flag=-1; symfunc=sym(func); dy=diff(symfunc); X=0; fX=0; x=a; for k=1:100 diffx=eval(dy); fx=eval(func); if (diffx==0) fprintf('Zero derivative'); return; end x=x-fx/diffx; fprintf('%10f %15f %3d\n', x, fx, k); X(k,1) = x; fX(k,1) = fx; if (fx == 0 || abs(fx) disp('-------------------------------'); disp('*** Solution Reached! ***'); disp('==============================='); flag=1; return; end end flag=0; disp('-------------------------------'); disp('!!! Method did not converge !!!'); disp('===============================');4. secant法(也是另一种改进的牛顿法) function [ X, fX ,flag] = secant( func, p0,p1, eps )%X = zeros(100,1);%fX = zeros(100,1); disp('==============================='); disp(' x f(x) i '); disp('-------------------------------'); flag=-1; X=0; fX=0; for k=1:100 x=p0; fp0=eval(func); x=p1; fp1=eval(func); if (fp1==fp0) fprintf('divided by zero'); return; end fprintf('%10f %15f %3d\n', p1, fp1, k); X(k,1) = p1; fX(k,1) = fp1; temp=p1; p1=p1-fp1*(p1-p0)/(fp1-fp0); p0=temp; if (fp1 == 0 || abs(fp1) disp('-------------------------------'); disp('*** Solution Reached! ***'); disp('==============================='); flag=1; return; end end flag=0; disp('-------------------------------'); disp('!!! Method did not converge !!!'); disp('==============================='); 地方不够大,regular-falsi就不贴了 和二分法类似 把这4个文件放在一个文件夹里,主程序调用二分法,牛顿拉弗森法或secant法就可以了 祝lz好运
延伸阅读:
怎样掌握化学实验的基本操作怎样掌握化学实验的基本操作 化学实验的基本操作的种类很多。例如,加热、溶解、过滤、蒸发、蒸馏、集气、结晶、滴定等。通常的化学实验里都包含着各种基本操作,只有掌握了基...
计算机基础上机心得word的使用:1.nbsp;一定要使用样式,除了Word原先所提供的标题、正文等样式外,还可以自定义样式。如果你发现自己是用选中文字然后用格式栏来设定格式的,一定要注意,想想其他地方是...
matlab中的时间和日期的函数有那些Matlab中计算函数运行时间的三种方法: 1、tic和toc组合 计算tic和toc之间那段程序之间的运行时间,它的经典格式为 : tic 函数 toc 复制函数代码,当代码遇到tic时Matlab自动开始...
求一份java上机实验心得 300字左右在这一系列的实验中,我基本掌握了Java的编程规则、知识要点和一些小技巧,特别是对面向对象的编程思想和风格有了进一步的认识和体会。同时,因正确的编出程序而带来的成就感让我...
会计学基础实验总结报告怎么写啊关于唐山钢铁设计研究院有限公司的实习报告 学校为了加强我们对所学理论知识的理解和掌握,于大三第一学期末即2007年1月1日至16日安排了一项分散实习,有关会计岗位的实地实习...
急求CAD3DMAXPHOTOSHOP上机实验报告!谢谢《photoshop与3DMAX》课程实验报告(七) 班级:06531 学号:29姓名:王宇龙 任课教师:谢春 实验教师:谢春 成绩: 一、实验名称:练习对通道和蒙版的操作 二、实验目的、要求:练习对通道和蒙...
做c上机实验报告的总结怎么写拜托各位了 3Q怎样写工作报告。 我们知道,更清晰、更快捷地让员工了解单位所取得的成绩,有效地贯彻落实下一步的工作计划,是我们写工作报告的主要目的。当前,工作报告已逐渐在程式化、格式化...
求医疗机构规章制度技术操作规程的内容《医疗机构规章制度》 一、门诊工作制度1.诊所医生在所长领导下开展工作,不断加强业务学习,提高业务水平。2.工作中要做到体贴关心病员,热情主动、态度和蔼,用文明语言热心解答...
外汇交易模拟实验内容怎么写第一:外汇投资有什么优势: 首先拿实业和金融投资作比较。现在投资实业不好做,人民币升值,出口定单减少,产品转内滞销。很多人把方向调整为金融理财投资,金融投资成本低收益高,外汇...