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

MATLAB简单迭代法

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

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

你的这个问题看似简单,但你没给出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...

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

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赋值,否则会报错的!

function [ A ] = cal( a,b,v )%a,b表示区间,v是精度 i=1; x = (a+b)/2; A=[i x]; t = x-(x^3-x-1)/(3*x^2-1);%迭代函数 while(abs(t-x)>v) i=i+1; x = t; A = [A;i x]; t = x-(x^3-x-1)/(3*x^2-1);%迭代函数 end A = [A;i+1 t]; end 运行结果...

clear all; clc;f = inline('x^2+2*x-10');df = inline('2*x+2');k = 1;x0 = 0;tol = 1e-3;x1 = x0-f(x0)/df(x0);while abs(x1-x0)>tol x0 = x1; k = k+1; x1 = x0-f(x0)/df(x0);endx0%解析解x = vpa(solve('x^2+2*x-10')) x0 = 2.3169389347304...

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

牛顿法 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