sphm.net
当前位置:首页 >> mAtlAB编写 牛顿法解非线性方程的程序 >>

mAtlAB编写 牛顿法解非线性方程的程序

这个牛顿法程序对吗?给你一个可用的:function main() clc; clear all; f = @(x)log(x+sin(x)); df = @(x)(1+cos(x))/(x+sin(x)); x0 = 0.1; x = TestNewton(f, df, x0)function x = TestNewton(fname, dfname, x0, e, N) % 用途:Newton迭代法...

Newton's method is the classic algorithm for finding roots of functions. The breif introduction is written below. The analytic solution is The code is clear allx = zeros(1,2);f = zeros(1,2);tol = 1E-7;invJ = zeros(2,2);x(1) = 0...

function x=Newton(fname,dfname,x0,e,N) %用途:Newton迭代法解非线性方程f(x)=0 %fname和dfname分别表示f(x)及其导函数的M函数句柄或内嵌函数表达式 %x0为迭代初值,e为精度(默认值1e-7) %x为返回数值解,并显示计算过程,设置迭代次数上限N...

你可以利用海塞矩阵来求解 http://blog.csdn.net/u010922186/article/details/41449781

给你一个完整版:% 牛顿法求解非线性方程组 function main() clc; clear all; f = @(x)log(x+sin(x)); % 测试函数 df = @(x)(1+cos(x))/(x+sin(x)); % 导数函数 x0 = 0.1; % 迭代初值 x = TestNewton(f, df, x0) % 牛顿法求解 function x = Test...

g = inline('9*y^2-24*y+13');gy = inline('18*y-24 ');a = 2; e1=0.0001;n=1;y = a-(g(a)/gy(a));z = abs(y-a);while z>e1 y = a-(g(a)/gy(a)); z = abs(y-a); a = y;n=n+1;enda,n

用fzero啊 f=@(x)cos(x).*x;%输入函数,所有的”*“、”/"和“^”都用".*"、"./"和".^" op=optimset('MaxIter',10,'TolFun',1e-1);%最大迭代次数'MaxIter'为10,迭代精度'TolFun'为0.1 x0=fzero(f,-1,op)%初始迭代点为 x=-1 f(x0)

程序很简单的,有点基础的都能编。但是有一个点必须提醒你,Jacobe矩阵的计算。 两种方法: 解析Jacobe。就是需要你具体的研究非线性方程组的解析表达式,通过求导的方法,得到解析表示的Jacobe矩阵。 数值Jacobe。不需要具体研究方程组的解析式...

好久没有用到matlab了,很多都忘记了,实在是帮不上忙呀!

#include #include #include using namespace std; #define N 2 //用来设置方程组的行数 #define eps 2.2204e-16 double* MatrixMultiply(double* J,double Y[]); double* Inv(double *J); double norm(double Q[]); double* F(double X[]); dou...

网站首页 | 网站地图
All rights reserved Powered by www.sphm.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com