rpct.net
当前位置:首页 >> MATLAB简单迭代法 >>

MATLAB简单迭代法

牛顿迭代法在数值分析中最简单迭代法的一种。 牛顿迭代法的迭代格式为 Xk+1=Xk—f(Xk)/f'(Xk) 根据牛顿迭代法的迭代格式,用matlab语言编程,可以求得 x = 1.32471795724475 其实现代码如下。

1)for循环那里x=1.4后面应为冒号 2)for 少了对应的end 3)for循环里x_derivative为sym类型,不能直接运算,需用subs代入数值 4)迭代算法需要大改,n没有定义

你的这个问题看似简单,但你没给出a和b的值,迭代有可能不收敛的哈 给你一个,你参考一下,不难实现的: clear all;clc; z(1)=1; a=2;b=1/3; for ii=1:100 h(ii)=a/z(ii); zz(ii)=1/(1-h(ii))-b*h(ii)/(1+h(ii)); k(ii)=abs(z(ii)-zz(ii)); if k...

z(1)=m; z(2)=(z(1)+(m)/(z(1)))/2; i=1; while abs(z(i+1)-z(i))>=1.0000e-005 z(i+2)=(z(i+1)+(m)/(z(i+1)))/2; i=i+1; end yf=z(i+1) 以上程序已经经过测试 别忘了:执行程序之前,先给m赋值,否则会报错的!

程序本身没有错,显示结果的语句不符合matlab语言习惯,另外去掉disp也能显示出结果来,区别你运行下就知道了,最后提两点 1)变量x出现三种类型,工作区内后定义类型变量值会覆盖前一种类型,且不能再使用前一种类型的变量,不同类型最好另外...

function [n,x]=sor22(A,b,X,nm,w,ww) %用超松弛迭代法求解方程组Ax=b %输入:A为方程组的系数矩阵,b为方程组右端的列向量,X为迭代初值构成的列向量,nm为最大迭代次数,w为误差精度,ww为松弛因子 %输出:x为求得的方程组的解构成的列向量,n...

用对数迭代法就解非线性方程的根

建立m文件: function [result ,k] = newton(fun,x0,e) % 调用形式: % [x k] = newton(fun,x0,e) % 功能: % 用差商求导的牛顿法求解一元非线性方程的根 % 输入: % -- fun 字符串,f(x)的表达式,以x作为自变量,以字符串形式输入 % -- x0 标...

fun(x)=input('请输入迭代式fun(x)= '); 第一步就错了,没有这么写的。。。 disp('迭代次数是:',num2str(i)); disp只能有一个参数(至少我的7.1是这样)

牛顿法 fx=inline('x^3-x^2-1','x'); dfx=inline('3*x^2+2*x','x'); x0=1; e=1e-8; N=500; x=x0; x0=x+2*e; k=0; while abs(x0-x)>e&k

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