回 帖 发 新 帖 刷新版面

主题:[讨论]数值分析课程设计,用matlab。求求大人了!!

要求
1.来源参考:可以是数学分析和线性代数课程中的相关题目;可以通过查找文献和利用网上资源等自主选定一个项目;
2.内容要求:以下三类方法至少应包含其中两类
第一类、求解线性代数方程组的列主元Gauss消去法和Gauss-Seidel迭代法以及改进的平方根法和追赶法; 
第二类、求解非线性方程的二分法、牛顿法及其改进方法;
第三类、三次样条插值法和最小二乘曲线拟合法; 
3. 要求写出完整的实验报告word版,算法程序和演示所用的ppt电子版。


随意什么题都好 ,大人们可以自由选择。 这次的作业 真的是好难,我不会啦!!
谢谢谢谢大人们了!!![em21][em21][em21][em21][em21][em21][em21][em21][em21][em21][em21][em21][em21][em21][em21][em21]

回复列表 (共3个回复)

沙发

晕!
慢慢!待我将相关MATLAB程序贴到我BLOG

板凳

function [x,flag]=SecDiv(fun,a,b,ep)
%二分法求方程之根
%求根函数:fun
%求根区间:[a,b]
%精度设置:ep
flag=1;%求解成功
fa=fun(a);
fb=fun(b);
if a>=b |fa*fb>0
    flag=0;
    x=inf;
   return ;
end

while abs(b-a)/2>=ep
    x=(a+b)/2;
    fx=fun(x);
    if fa*fx<0
        b=x;
        fb=fx;
    else
        a=x;
        fa=fx;
    end
end
x=(a+b)/2;

function x=SecDivDev(fun,a,b,ep,k)
%二分法求方程之根
%求根函数:fun
%求根区间:[a,b]
%精度设置:ep
%可能存在的根数:k
x=zeros(1,k);
step=1/k;
ab=a:step:b;
n=length(ab);
m=0;
for i=1:n-1
[xx,flag]=SecDiv(fun,ab(i),ab(i+1),ep);
if flag==1
    m=m+1;
    x(m)=xx;
    if m==k
        break;
    end
end
end
x=x(1:m);

3 楼

function x=Steffensen(fun,x0,ep)
%Steffensen法求方程之根
%求根函数:fun
%与根相近点:x0
%精度设置:ep
x=x0;
x1=x0;
while 1
x1=x;
y=fun(x)+x;
z=fun(y)+y;
x=x-(y-x)*(y-x)/(z-2*y+x);
if abs(x-x1)<ep
    break;
end
end

我来回复

您尚未登录,请登录后再回复。点此登录或注册