本文源于一次课题作业,部分自己写的,部分借用了网上的demo

  • 牛顿迭代法(1)
x=1:0.01:2;
y=x.^3-x.^2+sin(x)-1;
plot(x,y,'linewidth',2);grid on;%由图像可知 根在1.05到1.15之间 syms x
s0=diff(x^3-x^2+sin(x)-1,x,1);
% 得到s0= cos(x) - 2*x + 3*x^2
% 迭代方程为 y=x-(x.^3-x.^2+sin(x)-1)/(cos(x) - 2.*x + 3*x.^2)
clear;
x=1.15;
for i=1:30
x=x-(x.^3-x.^2+sin(x)-1)/(cos(x) - 2.*x + 3*x.^2)%根据牛顿迭代法公式。一直迭代计算30次。
end
%可得 x取值为1.0935;
  • 牛顿迭代法(2)
%%   绘制图形。判断跟的大概位置。
x=1:0.01:2;
f=x.^3-x.^2+sin(x)-1;
plot(x,f,'linewidth',2);grid on;%由图像可知 根在1.05到1.15之间
%%
clc,clear
syms x
f=x.^3-x.^2+sin(x)-1;%所求函数
df=diff(f,x); %求取一阶导数
eps=1e-4; %误差判断
x0=1.15; %迭代初始值。
cnt=0;
MAXCNT=20; %最大循环次数
while cnt<MAXCNT %防止无限循环
x1=x0-subs(f,x,x0)/subs(df,x,x0); %去掉这个分号,可以看到迭代过程.
if (abs(x1-x0)<eps)
break;
end
x0=x1;
cnt=cnt+1;
end
if cnt==MAXCNT
disp '不收敛'
else
vpa(x1,8)
end
  • LU分解法

被调函数:


function [L,U]=lufj(A)
% 利用紧凑格式法原理 编写的LU 分解
[n,m]=size(A); % 获取A矩阵的行和列
if m~=n %判断行列相等与否
error('Not a squared matrix1');
else
A(2:n)=A(2:n)/A(1,1);
for k=2:n-1
A(k,k:n)=A(k,k:n)-A(k,1:k-1)*A(1:k-1,k:n);
A(k+1:n,k)=(A(k+1:n,k)-A(k+1:n,1:k-1)*A(1:k-1,k))/A(k,k);
end %都是根据定义进行循环计算。
end
L=A;U=A;
for i=1:n
L(i,i)=1;
L(i,i+1:n)=0;
U(i,1:i-1)=0;
end

主函数:

%%  需要调用lufj函数;
A=[-2 -2 3 5
1 2 1 -2
2 5 3 -2
1 3 2 3]
b=[-1
4
7
0]
% x=A\b %左除法求解
[L,U]=lufj(A);
x0=L\b;
x=U\x0%求出的x即为解
  • 拉格朗日插值法

    被调函数:
function y=lagrange(x0,y0,x);
% 根据拉格朗日插值定义编写
n=length(x0);m=length(x);
for i=1:m
z=x(i);
s=0.0;%给s的初值
for k=1:n
p=1.0;
for j=1:n
if j~=k
p=p*(z-x0(j))/(x0(k)-x0(j));
end
end
s=p*y0(k)+s;
end
y(i)=s;
end

主函数:

x=[0,1,2,4];
y=[1,9,23,3];
y0=lagrange(x,y,1.5)
  • 牛顿插值

    被调函数:
function yi=New_Int(x,y,xi)
%Newton基本插值公式
%x为向量,全部的插值节点
%y为向量,差值节点处的函数值
%xi为标量,是自变量
%yi为xi出的函数估计值
n=length(x);
m=length(y);
if n~=m
error('The lengths of X ang Y must be equal!');
return;
end
%计算均差表Y
Y=zeros(n);
Y(:,1)=y';
for k=1:n-1
for i=1:n-k
if abs(x(i+k)-x(i))<eps
error('the DATA is error!');
return;
end
Y(i,k+1)=(Y(i+1,k)-Y(i,k))/(x(i+k)-x(i));
end
end
%计算牛顿插值公式
yi=0;
for i=1:n
z=1;
for k=1:i-1
z=z*(xi-x(k));
end
yi=yi+Y(1,i)*z;
end

主函数:

clear all
clc
x0=[0.4 0.55 0.65 0.80 0.90 1.05];
y0=[0.41075 0.57815 0.69675 0.88811 1.0265 1.25382];
x1=0.596; % 待插值点。
y1=New_Int(x0,y0,x1)% y1即为待插值点的函数值。

TIP:主函数和被调函数要放在一个文件夹内。否则会引起调用错误

NOTE:本文对基本方法做了总结,你可以结合理论知识再来看代码,希望对你有所帮助

Matlab数值计算示例: 牛顿插值法、LU分解法、拉格朗日插值法、牛顿插值法的更多相关文章

  1. LU分解法求逆矩阵 C语言实现

    最近在网上找了下,没有找到我想要的C语言版本,找到的也是错误的.故自己写了一个,并进行了相关测试,贴出来分享. 具体的LU分解算法就不细说了,随便找本书就知道了,关键是分解的处理流程,细节特别容易出错 ...

  2. Guass列选主元消去法和三角分解法

    最近数值计算学了Guass列主消元法和三角分解法解线性方程组,具体原理如下: 1.Guass列选主元消去法对于AX =B 1).消元过程:将(A|B)进行变换为,其中是上三角矩阵.即: k从1到n-1 ...

  3. MATLAB数值计算——0

    目录 MATLAB数值计算 1.solve() 2.fzero() 3.fsolve() MATLAB数值计算 MATLAB中文论坛基础板块常见问题归纳(出处: MATLAB中文论坛) 登录http: ...

  4. [Architecture] 系统架构正交分解法

    [Architecture] 系统架构正交分解法 前言 随着企业成长,支持企业业务的软件,也会越来越庞大与复杂.当系统复杂到一定程度,开发人员会发现很多系统架构的设计细节,很难有条理.有组织的用一张大 ...

  5. 非刚性图像配准 matlab简单示例 demons算法

    2011-05-25 17:21 非刚性图像配准 matlab简单示例 demons算法, % Clean clc; clear all; close all; % Compile the mex f ...

  6. 现代控制理论习题解答与Matlab程序示例

    现代控制理论习题解答与Matlab程序示例 现代控制理论 第三版 课后习题参考解答: http://download.csdn.net/detail/zhangrelay/9544934 下面给出部分 ...

  7. 时间序列分解-STL分解法

    时间序列分解-STL分解法 [转载时请注明来源]:http://www.cnblogs.com/runner-ljt/ Ljt 作为一个初学者,水平有限,欢迎交流指正. STL(’Seasonal a ...

  8. 项目管理——WBS工作分解法

    首先我们要了解什么是WBS工作分解法 工作分解结构(Work Breakdown Structure,简称WBS)跟因数分解是一个原理,就是把一个项目,按一定的原则分解,项目分解成任务,任务再分解成一 ...

  9. 大规模问题的分解法-D-W分解法

    大规模线性规划问题的求解极具挑战性,在效率.存储和数值稳定性等方面对算法都有很高的要求.但是这类问题常常非常稀疏且有特殊结构,能够分解为若干个较小规模问题求解. 线性规划问题的目标函数和非负约束都可分 ...

随机推荐

  1. 【.net 深呼吸】细说CodeDom(1):结构大观

    CodeDom 是啥东东?Html Dom听过吧,XML Dom听过吧.DOM一般可翻译为 文档对象模型,那 Code + DOM呢,自然是指代码文档模型了.如果你从来没接触过 CodeDom,你大概 ...

  2. Ubuntu下使用nvm

    写在前面:刚写着写着博客就跨年了,希望新的一年大家万事如意,一切向"前"看! 安装 wget -qO- https://raw.githubusercontent.com/crea ...

  3. 阿里巴巴直播内容风险防控中的AI力量

    直播作为近来新兴的互动形态和今年阿里巴巴双十一的一大亮点,其内容风险监控是一个全新的课题,技术的挑战非常大,管控难点主要包括业界缺乏成熟方案和标准.主播行为.直播内容不可控.峰值期间数千路高并发处理. ...

  4. angular2系列教程(八)In-memory web api、HTTP服务、依赖注入、Observable

    大家好,今天我们要讲是angular2的http功能模块,这个功能模块的代码不在angular2里面,需要我们另外引入: index.html <script src="lib/htt ...

  5. C++随笔:.NET CoreCLR之GC探索(3)

    有几天没写GC相关的文章了哈,今天我讲GC的方式是通过一个小的Sample来讲解,这个小的示例代码只有全部Build成功了才会有.地址为D:\coreclr2\coreclr\bin\obj\Wind ...

  6. C# 实时折线图,波形图

    此Demo是采用VS自带的Chart图表控件,制作实时动态显示的折线图,和波形图. 涉及到知识如下: Chart 控件,功能强大,可以绘制柱状图,折线图,波形图,饼状图,大大简化了对图的开发与定制. ...

  7. BPM任务管理解决方案分享

    一.方案概述任务是企业管理者很多意志的直接体现,对于非常规性事务较多的企业,经常存在各类公司下达的各种任务跟进难.监控难等问题,任务不是完成效果不理解,就是时间超期,甚至很多公司管理层下达的任务都不了 ...

  8. Tomcat之APR错误

    在发布Apache Tomcat的时候,突然出现如下错误: An incompatible version 1.1.31 of the APR based Apache Tomcat Native l ...

  9. 解决 Error: getaddrinfo EADDRINFO 错误

    安装npm失败,提示Error: getaddrinfo EADDRINFO,原因在于虚拟机未连接互联网,悲剧.

  10. ASP.NET Aries 3.0发布(附带通用API设计及基本教程介绍)

    主要更新: 1:升级处理机制(js请求由同步变更为异步) 2:优化前端JS:包括API和配置方式. 3:增加InputDialog功能. 4:增远远程验证功能. 5:优化权限安全机制. 6:增加一次请 ...