24小时热门版块排行榜    

查看: 1729  |  回复: 15

erniu1984

铁虫 (小有名气)

[求助] 求解一个简单的超越方程解。不懂Matlab,希望高手解答!!!已有2人参与

求解一个简单的超越方程解:tan(x)=3*x/(3+0.002967*x^2)。应该有多个解,求大于零的第一个解。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

Op_liu

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
erniu1984(jjdg代发): 金币+20, 应助了,答案楼主也很满意,为啥不发金币呀,谢谢版主 2015-12-14 07:55:08
%% 解非线性方程,solve很难得到准确解;
%% 一般使用fzero;fsolve;自己编程序找点;3种方法;
%% 这里因为只用求一个解,我用的是fzero;
ezplot('tan(x)')
hold on
ezplot('3*x/(3+0.002967*x^2)')%由图可以看出在4附近;
[a,b]=fzero('tan(x)-3*x/(3+0.002967*x^2)',4)%a是解,b是误差;
plot(a,tan(a),'.r','MarkerSize',15)

%% 建议看http://muchong.com/bbs/viewthread.php?tid=9709378&pid=3#pid3#opennewwindow
%% 这里有我和另一个人写的解非线性方程的方法,分别用自己的程序和fsolve;是解这类问题更一般的解法
4楼2015-12-12 13:50:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

Op_liu

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
大于0的第一个解为4.4890
求解一个简单的超越方程解。不懂Matlab,希望高手解答!!!



发自小木虫Android客户端

» 本帖已获得的红花(最新10朵)

2楼2015-12-09 22:05:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

erniu1984

铁虫 (小有名气)

送红花一朵
引用回帖:
2楼: Originally posted by Op_liu at 2015-12-09 22:05:50
大于0的第一个解为4.4890

大谢大谢!!!
这两天忘回复了,见谅见谅!!!
还请高手把程序在贴出来,有点看不清,再次谢过~~~
3楼2015-12-12 13:04:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

erniu1984

铁虫 (小有名气)

引用回帖:
4楼: Originally posted by Op_liu at 2015-12-12 13:50:32
%% 解非线性方程,solve很难得到准确解;
%% 一般使用fzero;fsolve;自己编程序找点;3种方法;
%% 这里因为只用求一个解,我用的是fzero;
ezplot('tan(x)')
hold on
ezplot('3*x/(3+0.002967*x^2)')%由图可 ...

再扰!哈哈,我把你的解带入验算了下,两边不等...是怎么回事???求答···
5楼2015-12-12 15:30:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Op_liu

木虫 (正式写手)

引用回帖:
5楼: Originally posted by erniu1984 at 2015-12-12 15:30:00
再扰!哈哈,我把你的解带入验算了下,两边不等...是怎么回事???求答···...

你代的是多少,截屏给我看下,

发自小木虫Android客户端
6楼2015-12-12 15:31:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

erniu1984

铁虫 (小有名气)

引用回帖:
6楼: Originally posted by Op_liu at 2015-12-12 15:31:53
你代的是多少,截屏给我看下,
...

我就把4.489带入两边,然后用计算器算,不知道这样是不是欠妥
7楼2015-12-12 15:33:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Op_liu

木虫 (正式写手)

引用回帖:
7楼: Originally posted by erniu1984 at 2015-12-12 15:33:41
我就把4.489带入两边,然后用计算器算,不知道这样是不是欠妥
...

解(a)后面有很多小数点,用fzero算出来的误差(b)是10的负15次方,精度没有问题的,,你认真看看我写的程序还有给你发的那个网址吧

发自小木虫Android客户端
8楼2015-12-12 15:37:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Op_liu

木虫 (正式写手)

引用回帖:
7楼: Originally posted by erniu1984 at 2015-12-12 15:33:41
我就把4.489带入两边,然后用计算器算,不知道这样是不是欠妥
...

算出来的约等于4.4890,后面还有很多位

发自小木虫Android客户端
9楼2015-12-12 15:39:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

erniu1984

铁虫 (小有名气)

引用回帖:
8楼: Originally posted by Op_liu at 2015-12-12 15:37:03
解(a)后面有很多小数点,用fzero算出来的误差(b)是10的负15次方,精度没有问题的,,你认真看看我写的程序还有给你发的那个网址吧
...

根本不懂Matlab,哈哈,那解a到底是多少哈
另外我们老师给了我一个程序
clear all;clc;
syms x;

vpasolve(tan(x)== 3*x/(3+0.002967*x^2),x,2)解出来和你的不一样,咋弄嘞
10楼2015-12-12 15:43:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 erniu1984 的主题更新
信息提示
请填处理意见