声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3495|回复: 8

[综合讨论] 如何求解牛顿辛普森方程这个非线性方程

[复制链接]
发表于 2008-5-6 14:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
有没有高手知道牛顿辛普森方程的代码, 或者请高手帮忙发一段用fsolve解这个非线性方程的代码, 谢谢

程序如下rs(1)=304.8; % 设定机架1长度
rs(2)=101.6; % 设定曲柄2长度
rs(3)=254.0; % 设定连杆3长度
rs(4)=177.8; % 设定摇杆4长度
dr=pi/180.0;% 角度与弧度的转换系数
% 设定初始推测的输入
% 机构的初始位置
th(1)=0.0; % 设定曲柄2初始位置角是0度(与机架1共线)
th(2)=45*dr; % 连杆3的初始位置角是 45度
th(3)=135*dr; % 摇杆4的初始位置角是135度
% 摇杆4的初始位置角可以用三角形的正弦定理确定
th(3)=pi-asin(sin(th(2))*rs(3)/rs(4)) dth=5*dr;
% 循环增量
% 曲柄输入角从0度变化到360度,步长为5度,计算th34
for i=1:72 [th3,th4]=ntrps(th,rs); % 调用牛顿—辛普森方程求解机构位置解非线性方程函数文件
% Store results in a matrix-th34,in degrees
% 在矩阵th34中储存结果,以度为单位;(i,:)表示第i行所有列的元素;(:,i)表示第i列所有行的元素
th34(i,:)=[th(1)/dr th3/dr th4/dr]; % 矩阵[曲柄转角 连杆转角 摇杆转角]
th(1)=th(1)+dth; % 曲柄转角递增
th(2)=th3; % 连杆转角中间计算值
th(3)=th4; % 摇杆转角中间计算值
end


方程如下
f1(θ3,θ4)=r2cosθ2+r3cosθ3-r1-r4cosθ4=0
f2(θ3, θ4)=r2sinθ2+r3sinθ3-r4sinθ4=0

[ 本帖最后由 ChaChing 于 2009-9-9 21:48 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-5-6 15:12 | 显示全部楼层
搜索我发的帖子:fsolve
 楼主| 发表于 2008-5-6 17:49 | 显示全部楼层
我没找到啊??能不能把链接发上来 谢谢了

[ 本帖最后由 ChaChing 于 2009-9-9 21:52 编辑 ]
发表于 2008-5-6 18:16 | 显示全部楼层
发表于 2008-5-6 18:27 | 显示全部楼层
应该不是,其实楼主在置顶帖中就找到的了(热点问题贴中),如果不会在置顶帖中找需要的帖子,请看会员守则1楼

[ 本帖最后由 ChaChing 于 2009-9-9 22:10 编辑 ]
发表于 2008-5-6 18:43 | 显示全部楼层
应该不是,其实楼主在置顶帖中就找到的了(热点问题贴中),如果不会在置顶帖中找需要的帖子,请看会员守则1楼

谢谢eight院长,受教啦:@)
是这个帖子:
http://forum.vibunion.com/forum/thread-47883-1-1.html
 楼主| 发表于 2008-5-6 18:50 | 显示全部楼层
太感谢了 :lol :lol

请问能不能就我这个问题帮忙编一段程序 谢谢:handshake

[ 本帖最后由 ChaChing 于 2009-9-9 22:13 编辑 ]
发表于 2008-5-6 19:05 | 显示全部楼层
原帖由 nothing12733 于 2008-5-6 18:50 发表
太感谢了 :lol :lol :lol :lol :lol :lol
请勿连续使用多个标点符号、表情
发表于 2009-9-9 16:39 | 显示全部楼层
来源:“机械工程设计分析与MATLAB应用”

已知四杆长,曲柄转速,求运动线图

% 曲柄摇杆机构运动分析
% (1)-----为了计算连杆的输出角th3和摇杆的输出角th4
% 设定各杆的长度(单位:毫米)
clear
rs(1)=304.8;        % 设定机架1长度
rs(2)=101.6;        % 设定曲柄2长度
rs(3)=254;      % 设定连杆3长度
rs(4)=177.8;        % 设定摇杆4长度
dr=pi/180.0;% 角度与弧度的转换系数
% 设定初始推测的输入
% 机构的初始位置
th(1)=0.0;          % 设定曲柄2初始位置角是0度(与机架1共线)
th(2)=45*dr;        % 连杆3的初始位置角是 45度
th(3)=135*dr;       % 摇杆4的初始位置角是135度
% 摇杆4的初始位置角可以用三角形的正弦定理确定
%th(3)=pi-asin(sin(th(2))*rs(3)/rs(4))
dth=5*dr;                               % 循环增量
% 曲柄输入角从0度变化到360度,步长为5度,计算th34
for i=1:72
    [th3,th4]=ntrps(th,rs); % 调用牛顿—辛普森方程求解机构位置解非线性方程函数文件
    % 在矩阵th34中储存结果,以度为单位;(i,:)表示第i行所有列的元素;(:,i)表示第i列所有行的元素
    th34(i,:)=[th(1)/dr th3/dr th4/dr]; % 矩阵[曲柄转角 连杆转角 摇杆转角]
    th(1)=th(1)+dth;                    % 曲柄转角递增
    th(2)=th3;                          % 连杆转角中间计算值
    th(3)=th4;
                          % 摇杆转角中间计算值
end
% 绘制输出角th(2)与th(3)—输入角th(1)的关系曲线
subplot(2,2,1)                          % 选择第1个子窗口
plot(th34(:,1),th34(:,2),th34(:,1),th34(:,3))


重点在红色的句子,书上没有给出相应的求解子函数

自己写了如下求解非线性方程的函数

function [th3,th4]=ntrps(th,rs)
dr=pi/180.0;rs(1)=304.8;        % 设定机架1长度
rs(2)=101.6;        % 设定曲柄2长度
rs(3)=254;      % 设定连杆3长度
rs(4)=177.8;      % 设定摇杆4长度
x0=[0 45*dr 135*dr];
[th3,th4]=fsolve(@fangc,x0)%(th(2),th(3))

其中:

function F=fangc(th,rs)
rs(1)=304.8;        % 设定机架1长度
rs(2)=101.6;        % 设定曲柄2长度
rs(3)=254;      % 设定连杆3长度
rs(4)=177.8;        % 设定摇杆4长度
F(1)=rs(2)*cos(th(1))+rs(3)*cos(th(2))-rs(1)-rs(4)*cos(th(3));
F(2)=rs(2)*sin(th(1))+rs(3)*sin(th(2))-rs(4)*sin(th(3));


问题:每次由fsolve解出的fangc非线性方程th3,th4都有几个解,导致紫色的句子无法赋值。

不知道怎么解决。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-22 06:52 , Processed in 0.057674 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表