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

MATLAB简单迭代法

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...

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

程序本身没有错,显示结果的语句不符合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赋值,否则会报错的!

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

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...

用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)

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

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 运行结果...

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