24小时热门版块排行榜    

查看: 2179  |  回复: 22

Littlecaesar

银虫 (小有名气)

[求助] 求高手解方程组(应该不难)已有3人参与

下面的方程组,我用matlab里的fsolve求解的,但是每次结果都不准确,fval 值一个出来0, 另一个0.036,太大了。想把这个方程组解出来,求数学大神给点指点啊!

求高手解方程组(应该不难)
Untitled.png
回复此楼

» 猜你喜欢

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

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

waterque

金虫 (正式写手)

【答案】应助回帖


感谢参与,应助指数 +1
fegg7502: 金币+1, 鼓励交流 2014-09-11 07:00:12
设x = L2 - L1,
f(x) = Acos(ax) + Bsin(ax) % a ---> alpha
则f'(x) = -Aasin(ax) + Bacos(ax)
那么你的问题就变成:
f(x) = 0;
f'(x) = epsilon_m;

并不能得到具体的L1, L2.
行自己的路:waterque@hotmail.com
12楼2014-06-13 18:23:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

waterque

金虫 (正式写手)

【答案】应助回帖


fegg7502: 金币+1, 鼓励交流 2014-09-11 07:00:20
引用回帖:
12楼: Originally posted by waterque at 2014-06-13 18:23:44
设x = L2 - L1,
f(x) = Acos(ax) + Bsin(ax) % a ---> alpha
则f'(x) = -Aasin(ax) + Bacos(ax)
那么你的问题就变成:
f(x) = 0;
f'(x) = epsilon_m;

并不能得到具体的L1, L2.

matlab代码:
clear;
A = -0.30714;
B = 0.12966;
a = 0.0206;
epm = linspace(0.07,0.1,10);
x = -1500:0.01:1500;
f = A*cos(a*x)+B*sin(a*x);
h = -B*a*cos(a*x)+A*a*sin(a*x);
plot(x,f)
hold on;
plot(x,x*0,'r');

for k = 1:length(epm)
    plot(x,h+epm(k),'g');
end
hold off;

说明:分别画出两个函数的曲线来,其中一个是f(x), 另一个是 h(x) = -f'(x) + epsilon_m;
方程组的解是这两个曲线相交于横轴的点。但从图中看的话,h(x)最小的值也是在横轴上方的,所以无实数解。
求高手解方程组(应该不难)-1
curves.jpg

行自己的路:waterque@hotmail.com
13楼2014-06-13 18:54:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
B值没给?还有出了图片最好再给出文本。
2楼2014-06-12 23:10:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Littlecaesar

银虫 (小有名气)

谢谢楼上,刚才是没有给出B值,重新写了一下。BW,什么文本?不懂。。。
求高手解方程组(应该不难)-2
Untitled.png

3楼2014-06-12 23:27:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Littlecaesar

银虫 (小有名气)

引用回帖:
2楼: Originally posted by dingd at 2014-06-12 23:10:28
B值没给?还有出了图片最好再给出文本。

改过来了,,,BW,什么文本?
4楼2014-06-12 23:29:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

NicoleLas

木虫 (正式写手)

引用回帖:
4楼: Originally posted by Littlecaesar at 2014-06-12 23:29:44
改过来了,,,BW,什么文本?...

文本格式代码...............
   你贴个图片难道还指望可能帮助你的人对照着图片输入公式一遍?
   为自己,为他人,都得考虑一下,dingd版主算是很热心的了,如果你直接给出了文本代码,他可以很方便地用1stOpt最新版给你计算一下,很可能很快就有结果了。
Be water, my friend.
5楼2014-06-12 23:57:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Littlecaesar

银虫 (小有名气)

引用回帖:
5楼: Originally posted by NicoleLas at 2014-06-12 23:57:18
文本格式代码...............
   你贴个图片难道还指望可能帮助你的人对照着图片输入公式一遍?
   为自己,为他人,都得考虑一下,dingd版主算是很热心的了,如果你直接给出了文本代码,他可以很方便地用1stOpt ...

clear
clc
K0=9.5e-5;
Eg=1;
Em=0.003;
tmax=0.52e-6;
delta_i=tmax/K0;
G=0.8e-6;
delta_f=2*G/tmax;
h=0.0004;
beta=sqrt(K0/(Eg*h));
L=100;
epsilon_m=linspace(0,0.1,11)
%  1st critical strain
epsilon_m_c1=delta_i*beta*coth(beta*L)
%  2nd critical strain
A=delta_i-delta_f
alfa=sqrt(tmax/(delta_f-delta_i)/(Eg*h))
fun=@(L1_c) A*cos(alfa*(L1_c-L))+(delta_i*beta*coth(beta*L1_c)/alfa)*sin(alfa*(L-L1_c));
L1_c0=100;
opts = optimset('Diagnostics','off','Display','off');
[L1_c,fval]=fzero(fun,L1_c0,opts)
epsilon_m_c2 =-(A*alfa*sin(alfa*(L-L1_c))-(delta_i*beta*coth(beta*L1_c)/alfa)*alfa*cos(alfa*(L-L1_c)))
x=linspace(0,L,100);
for ii=1:11
   
   if epsilon_m(ii)>epsilon_m_c2
%         calculate L1 and L2
     fun=@(Lc) [ A*alfa*sin(alfa*(Lc(2)-Lc(1)))-(delta_i*beta*coth(beta*Lc(1))/alfa)*alfa*cos(alfa*(Lc(2)-Lc(1)))+epsilon_m(ii); ...
         A*cos(alfa*(Lc(1)-Lc(2)))+(delta_i*beta*coth(beta*Lc(1))/alfa)*sin(alfa*(Lc(2)-Lc(1)))];
     L0=[100,100];
     opts = optimset('TolFun',1e-7,'TolX',1e-20);
     [Lc,fval,exitflag]=fsolve(fun,L0,opts)
     L1=Lc(1);
     L2=Lc(2);
     
          for jj=1:100
%               region I
             if x(jj)<L1|x(jj)==L1
                 epsilon_g(jj)=epsilon_m(ii)-delta_i*beta*cosh(beta*x(jj))/sinh(beta*L1);
%               region II
             elseif L1<x(jj)&x(jj)<L2
                 B=delta_i*beta*coth(beta*L1)/alfa;
                 epsilon_g(jj)=epsilon_m(ii)+A*alfa*sin(alfa*(x(jj)-L1))-B*alfa*cos(alfa*(x(jj)-L1));
             elseif x(jj)>L2
                 epsilon_g(jj)=0;
             end
          end
                 
      plot(x,epsilon_g,'g')
      hold on
      axis([0,200,0,0.12])
    end

end
6楼2014-06-13 00:08:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Littlecaesar

银虫 (小有名气)

引用回帖:
5楼: Originally posted by NicoleLas at 2014-06-12 23:57:18
文本格式代码...............
   你贴个图片难道还指望可能帮助你的人对照着图片输入公式一遍?
   为自己,为他人,都得考虑一下,dingd版主算是很热心的了,如果你直接给出了文本代码,他可以很方便地用1stOpt ...

不好意思,我在matlab里面写的,主要是要取好几组值,想画个图。不知道1stopt可以画图吗?
7楼2014-06-13 00:15:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

NicoleLas

木虫 (正式写手)

引用回帖:
7楼: Originally posted by Littlecaesar at 2014-06-13 00:15:10
不好意思,我在matlab里面写的,主要是要取好几组值,想画个图。不知道1stopt可以画图吗?...

我咋看下感觉用1stOpt会很方便,结果应该比较不错。你求助dingd版主吧,他有最新版,画图应该也可以的。
Be water, my friend.
8楼2014-06-13 00:17:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Littlecaesar

银虫 (小有名气)

引用回帖:
2楼: Originally posted by dingd at 2014-06-12 23:10:28
B值没给?还有出了图片最好再给出文本。

版主你好,我把自己写的matlab程序贴出来了,比较简单。用matlab解是因为想画个图,并且给epsilon-m取不同的值。fsolve求解不成功!求指点啊。。。
9楼2014-06-13 02:37:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

方程、系数等都对吗?似乎没有实数解。
10楼2014-06-13 09:34:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 Littlecaesar 的主题更新
信息提示
请填处理意见