博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
matlab实现不动点迭代、牛顿法、割线法
阅读量:5218 次
发布时间:2019-06-14

本文共 1832 字,大约阅读时间需要 6 分钟。

不动点迭代

function xc = fpi( g, x0, tol )    x(1) = x0;    i = 1;    while 1        x(i + 1) = g(x(i));        if(abs(x(i+1) - x(i)) < tol)            break        end        i = i + 1;    end    xc = x(i+1);end

牛顿法:

function xk = funNewton(f, x0, max_steps, tol)    syms x    symbol_f = f(x);    dif_f = matlabFunction(diff(symbol_f));    clear x    x = x0;    for k = 1:max_steps       xk = x;       disp(['the ', num2str(k), ' time is ', num2str(x)])       %xk to save the last time value of x       x = x - f(x) / dif_f(x);       %newton solve        if(abs(xk - x) < tol)       %decide whether to break out            break;       end    endend

割线法:

function xc = CutLine( f, x0, x1, tol )    x(1) = x0;    x(2) = x1;    i = 2;    while 1        x(i + 1) = x(i) - (f(x(i)) * (x(i) - x(i - 1))) / (f(x(i)) - f(x(i - 1)));        if(abs(x(i + 1) - x(i)) < tol)            break;        end        i = i + 1;    end    xc = x(i + 1);end

Stewart平台运动学问题求解:

function out = Stewart( theta )    % set the parameter    x1 = 4;     x2 = 0;     y2 = 4;     L1 = 2;    L2 = sqrt(2);    L3 = sqrt(2);    gamma = pi / 2;    p1 = sqrt(5);    p2 = sqrt(5);    p3 = sqrt(5);    % calculate the answer    A2 = L3 * cos(theta) - x1;    B2 = L3 * sin(theta);    A3 = L2 * cos(theta + gamma) - x2;    B3 = L2 * sin(theta + gamma) - y2;        N1 = B3 * (p2 ^ 2 - p1 ^ 2 - A2 ^ 2 - B2 ^ 2) - B2 * (p3 ^ 2 - p1 ^ 2 - A3 ^ 2 - B3 ^ 2);    N2 =  -A3 * (p2 ^ 2 - p1 ^ 2 - A2 ^ 2 - B2 ^ 2) + A2 * (p3 ^ 2 - p1 ^ 2 - A3 ^ 2 - B3 ^ 2);    D = 2 * (A2 * B3 - B2 * A3);        out = N1 ^ 2 + N2 ^ 2 - p1 ^ 2 * D ^ 2;end

test our function at theta = - pi / 4 and theta = pi / 4

clear allclcformat shortdisp('f(- pi / 4) is ')out1 = Stewart(- pi / 4)disp('--------------')disp('f(pi / 4) is ')out2 = Stewart(pi / 4)

转载于:https://www.cnblogs.com/wsine/p/4634513.html

你可能感兴趣的文章
Java Session 介绍;
查看>>
spoj TBATTLE 质因数分解+二分
查看>>
Django 模型层
查看>>
dedecms讲解-arc.listview.class.php分析,列表页展示
查看>>
Extjs6 经典版 combo下拉框数据的使用及动态传参
查看>>
【NodeJS】http-server.cmd
查看>>
研磨JavaScript系列(五):奇妙的对象
查看>>
面试题2
查看>>
selenium+java iframe定位
查看>>
P2P综述
查看>>
第五章 如何使用Burp Target
查看>>
Sprint阶段测试评分总结
查看>>
sqlite3经常使用命令&amp;语法
查看>>
linux下编译openjdk8
查看>>
【python】--迭代器生成器装饰器
查看>>
Pow(x, n)
查看>>
安卓当中的线程和每秒刷一次
查看>>
每日一库:Modernizr.js,es5-shim.js,es5-safe.js
查看>>
ajax连接服务器框架
查看>>
wpf样式绑定 行为绑定 事件关联 路由事件实例
查看>>